(R) 循环和函数中的图是空的,即使它们在 plottet 独立时工作

(R) Graphs in a loop and funktion are empty, even though they work when plottet standalone

所以,我有一个箱线图,其中我在图上方的字母中注释了每个图的数据点数量和显着性水平。当在正常 (?!?) 工作流程中绘图时,他们需要大约 1-2 秒的时间在 X Window 系统图形 (X11) 中绘图,之后绘图会被保存。当 plot-command 包装在 for 循环中或由函数调用时,X11-window 保持为空并像那样保存。

这是一个使用 mtcars 的最小示例,展示了相同的问题。如果没有上下文,这个例子就没有意义。

library(ggplot2)
setwd("C:/")
output <- "C:/"

data <- mtcars
data$cyl <- as.factor(data$cyl)

#----normal plotting----

x11()
ggplot(data, aes(x = cyl, y = mpg))+
  stat_boxplot(geom = "errorbar")+
  geom_boxplot()

savePlot(paste0(output, "example_normal", ".tiff"), type = "tiff")
dev.off()

#----plotting throught a function----

my.plot <- function(x)
{
  x11()
  ggplot(x, aes(x = cyl, y = mpg))+
    stat_boxplot(geom = "errorbar")+
    geom_boxplot()
  
  savePlot(paste0(output, "example_function", ".tiff"), type = "tiff")
  dev.off()
}

my.plot(data)

干杯

我不得不 post 围绕它 print(ggplot(...)) 以使其在 for-loop 中工作。