我正在使用以下代码在同一张图中生成三个不同的直方图。但是,我想知道,是否有可能在三个下方的图之间以相同的比例将所有三个图的三个不同的直方图分开在下面。作为替代方案,我考虑过将三个直方图转换为密度,但仍将它们放在同一张图中。
require(ggplot2)
require(reshape2)
set.seed(1)
df <- data.frame(x = rnorm(n = 1000, mean = 2, sd = 0.2),
y = rnorm(n = 1000, mean = 2),
z = rnorm(n = 1000, mean = 2))
ggplot(melt(df), aes(value, fill = variable)) + geom_histogram(position = "dodge")+ scale_fill_manual(values = c('red','black','green'))
谢谢。
试试这个:
gg <- melt(df)
ggplot(gg) + geom_bar(aes(x=value,fill=variable)) + facet_grid(variable~., scale.)
功能melt(...)将您的数据从“宽”格式(不同列中的值)转换为“长”格式(一列中的值,并有一个额外的列指示哪个值与哪个变量一起使用。这是首选格式)然后facet_grid(...)将不同的变量(x,y,z)放入不同的图形(或面板)中。
将此用于密度:
ggplot(gg) +
stat_density(aes(x=value, color=variable),geom="line",position="dodge")
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句