【问题标题】:Looping over boxplots (dataframe columns)循环箱线图(数据框列)
【发布时间】:2017-04-03 10:03:51
【问题描述】:

我尝试生成很多箱线图并将它们保存在单独的文件中。每个箱线图都应基于数据框中的变量。我或多或少试图“复制”Looping over plots 的解决方案,但这不起作用。

for(i in c("varname1","varname2")) {
  png(paste(i, "png", sep = "."), width = 400, height = 400)
  print(ggplot(df) + geom_boxplot(aes_string(y =seq_along(i)  , x = i)) +    
  theme_bw()) 
  dev.off()
}

我也在这个网站上搜索了解决方案,但找不到可行的解决方案。

【问题讨论】:

  • 一个基本的 r boxplot 循环也可以:boxplot(dataframe$varname)
  • 请问具体的错误信息或问题是什么? 但这不起作用是很模糊的。
  • 地块需要保存在单独的文件中吗?对于facet 来说,这听起来是一个很好的机会...
  • @UweBlock:对不起。它显示了一条水平线。
  • @AndrewCheesman:有趣,我不知道 facet 选项!它不需要位于单独的文件中。一个文件将是最佳的。但是, facet 似乎适用于子组。就我而言,它只是要显示的单独变量。

标签: r loops for-loop ggplot2 boxplot


【解决方案1】:

我找到了解决方案。 'seq_along' 应该被删除。 我还更改了其他一些内容:我添加了“Hist”。作为文件名中的前缀,删除了 x 比例中的视觉元素并删除了缺失以防止出现警告。

for(i in c("varname1", "varname2", "varname3")) {
png(paste("Hist",i, "png", sep = "."), width = 400, height = 400)
print(ggplot(df) + geom_boxplot(aes_string(y=i, x = 0), na.rm=TRUE) + 
scale_x_discrete(breaks=NULL) + xlab(NULL) + theme_bw())
dev.off()
}

对我来说有点奇怪的是 ggplot 以某种方式期望一个 X 变量。我通过将 x 设置为零并将这些元素隐藏在视觉效果中来忽略这一点。所以只是有点烦人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2017-03-20
    • 2018-09-08
    相关资源
    最近更新 更多