绘制小刻面的多个数字而不是一个大刻面的大数字

时间:2015-10-26 21:29:27

标签: r ggplot2

我想使用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")

感谢

enter image description here

1 个答案:

答案 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))
}