我想使用ggplot为我的所有列(132列)生成直方图。 我使用以下代码,但它在一个图中产生所有直方图(132个微小的直方图)。有没有办法生成11个数字,每个数字包含12个直方图?
d <- melt(data)
ggplot(d,aes(x = value)) +
facet_wrap(~variable,scales = "free_x") +
geom_histogram(aes(y=..density..),colour="black", fill="white")+
geom_density(alpha=.2, fill="#FF6666")
感谢
答案 0 :(得分:0)
下面的代码将为您的融化数据中的每个variable
级别创建一个单独的图表,并将其保存在列表中。
p.list=list()
for (var in unique(d$variable)) {
p.list[[var]] = ggplot(d[d$variable==var,], aes(x = value)) +
facet_wrap(~variable,scales = "free_x") +
geom_histogram(aes(y=..density..),colour="black", fill="white")+
geom_density(alpha=.2, fill="#FF6666")
}
现在你可以一次绘制任意数量的它们。例如:
library(gridExtra)
for (i in seq(1, length(p.list), 12)) {
do.call(grid.arrange, c(p.list[i:(i+11)], ncol=3))
}