【发布时间】:2014-02-02 22:37:01
【问题描述】:
我正在通过 R 中的 for 循环绘制八个直方图,我想将它们全部绘制为一张图片(2 列乘 4 行)。我试图和这个人 (Multiple histograms in ggplot2) 做同样的事情,但不知何故对我来说它不起作用。
这是(部分)我的代码:
Words = levels(study$Word)
numberOfWords = length(levels(study$Word))
layout(matrix(1:8,4,2,byrow=TRUE))
par(mar=c(2,1,2,1))
for (i in 1:numberOfWords) {
word <- Words[i]
histo <- ggplot(study[study$Word==word,], aes(study$VOT[study$Word==word]))
histo + geom_histogram(aes(y = ..density..), fill = "white", colour = "black", binwidth = ((max(study$VOT[study$Word==word])-min(study$VOT[study$Word==word]))/10)) + labs(x = "VOT (ms)", y = "Density", title = word) + stat_function(fun = dnorm, args = list(mean = mean(study$VOT[study$Word==word], na.rm=T), sd = sd(study$VOT[study$Word==word], na.rm = T)), colour = "blue", size = 1)
}
我知道 for 循环工作正常,因为当我将 print() 放在以 histo + ... 开头的最后一条很长的行周围时,我看到它连续打印我的八个直方图,相互覆盖。当我不写print()(如上面的代码)时,什么都不会打印。
我的问题很简单:如何阻止直方图相互覆盖,并将它们放在一张图片中?
【问题讨论】: