【发布时间】:2015-11-09 02:30:06
【问题描述】:
我正在尝试绘制 ggplot 矩阵,箱线图版本工作得很好,但是当我尝试对 ggplot 做同样的事情时,我失败了
箱线图版本:
par(mfrow=c(3, 3))
for (scale in c("POMS",
"POMS_post",
"DERS",
"DERS_post",
"REAPPRAISAL",
"REAPPRAISAL_POST",
"NEGATIV",
"NEGATIVE_POST")) {
boxplot(kata1[, scale] ~ Skupina, data=kata1, ylab=scale)
}
ggplot 版本:
# Testing
for (scale in c("POMS",
"POMS_post",
"DERS",
"DERS_post",
"REAPPRAISAL",
"REAPPRAISAL_POST",
"NEGATIV",
"NEGATIVE_POST")) {
ggally_box(kata1, aes(Skupina, kata1[, scale])) # This does not work...
}
我觉得应该没那么难,但我卡住了。
感谢您的帮助!
【问题讨论】:
-
使用
aes_string("Skupina", scale) -
您可能必须在循环中明确使用
print。 -
谢谢,带有 print 语句的 aes_string 可以很好地工作,但是它会分别打印出每个图(一次一个图),而不是将其绘制成矩阵。关于为什么的任何想法?
-
因为 ggplot 在设置 par(mfrow) 时效果不佳。您可以查看 gridExtra-package 并执行 grid.arrange。您还可以考虑融合您的数据,并使用 facet_wrap。
-
谢谢你,这成功了。
标签: r loops ggplot2 boxplot ggally