循环的每次迭代都会创建一个新的plotx。这运行良好,因为当我运行打印(plotx)它会产生不同的图形。指定循环不适用于绘图
然后,我使用assign来调用每个plot“plotx1”,“plotx2”等,以将每个绘图另存为一个单独的名称。 当我绘制名称图时,它们全部与Y = c相同,但是Y轴正确标记了循环的原始Y!这是怎么回事? 我该如何纠正?
dat = data.frame("d"= rep(c("bla1","bla2","bla3"),3),"a" = c(1:9), "b"=
c(19:11), "c"=rep(c(3,2,2),3))
X = "d"
listY = c("a","b","c")
z= 0
for (Y in listY){
z= z+1
plotx= ggplot(dat,
aes(x = dat[[X]], y = dat[[Y]])) +
geom_boxplot() +
scale_x_discrete(X) +
scale_y_continuous(Y)+
theme_bw()
print(plotx)
plot_name = paste0("plotx",z)
assign(plot_name , plotx)
}
plotx1
plotx2
plotx3
当你打印该地块建造新绘制出来。在循环之后,'Y'的值是'listY'中的最后一个值。你有几个选择:你可以用'dat [[Y]]来代替,或者你可以把ggplot对象变成grob。 – Roland
这是在循环外获得相同绘图的正确原因。 – Sal