我有这个带有基本绘图功能的工作循环
#my_data is a data.frame defined before
day = c("2016-12-24","2016-12-25", "2016-12-31")
par(mfrow = c(length(day),1))
for (i in 8:length(my_data)){
for (j in 1:length(day)){
plot(x=my_data$Zeit[which(my_data$Datum == day[j])], y=my_data[which(my_data$Datum == day[j]),i], type="l",
main=colnames(my_data[i]), xlab=day[j], ylab=my_units[1,i])
}
}
但是我想使用ggplot而不是基本的绘图功能。通过这个板上的搜索功能,我找到了de命令" grid.arrange",但它不知何故不起作用。
编辑:这是我的新代码" do.call"。谢谢你的提示。
Edit2:现在可以了。我不明白为什么,但是"#Added"它不会打印三次相同的情节。
for (i in 8:length(my_data)){
for (j in 1:length(day)){
local({ #Added
i <- i #Added
t <- which(my_data$Datum == day[j])
p[[j]] <<- ggplot(my_data[t,], aes(my_data$Zeit[t], my_data[t,i]))+ #Changed to <<-
geom_line()+
labs(x = "", y = my_units[[i]], title = colnames(my_units[i]))+
theme_own()
}) #Added
}
编辑:我想要做的是在相同的&#34;图片&#34;中绘制数天(在这个例子中为三天)的数据。我想对所有列重复此操作(8:length(my_data))。
使用这个新代码&#34; do.call&#34;我确实得到了三个我想要的情节,但这些情节都是在同一天(最后一天)。为什么前两个日期会被覆盖?
Edit2:我在这里找到了提示:for loop with ggplots produces graphs with identical values but different headings
谢谢大家的帮助:)
答案 0 :(得分:0)
很难准确猜出您的目标是什么,因为您的示例在for循环中调用了grid.arrange
。但请尝试使用do.call("grid.arrange", c(plist, ncol=2))
。