簡體   English   中英

在R中循環保存多個圖

[英]Save multiple plots in loop in R

我想使用循環將多個圖另存為png。 不幸的是,該循環似乎不起作用,因為保存和繪制單個圖是可行的,但是如果我在循環中執行此操作,則不會保存任何內容。 我也沒有收到錯誤消息。 只是什么也沒有發生。

這是有效的代碼:

name = main_emo[i]
  mypath=file.path("/Users/Jasmin/Documents/Psychologie/Master/Masterarbeit/Working directory", name)

  png(mypath)

  qplot(x_emo,y_emo, main = main_emo[i]) + geom_errorbar(aes(x=x_emo, ymin=y_emo-sd, ymax=y_emo+sd), width=0.25) + ylab("Rating") + xlab("Emotion")+
    theme(panel.grid.major = element_blank()) +  scale_y_continuous(breaks=seq(1,7,1)) + expand_limits(y=7)

  dev.off()

這是循環不再起作用的循環:

main_emo <- c("Emotion Profile Funeral", "Emotion Profile Wedding", "Emotion Profile Destroyed Street","Emotion Profile Destroyed Street")  

frame_name <- c("nice", "wedd", "des", "fun")
emo_mean <- c("rmean_EM_Trauer_", "rmean_EM_Freude_","rmean_EM_Angst_", "rmean_EM_Aerger_", "rmean_EM_Ekel_", "rmean_EM_Ueber_")


for (i in 1: length(frame_name)) {
  y_emo <- c()
  sd <- c()
  x_emo <- c("Trauer", "Freude", "Angst", "Aerger", "Ekel", "Üeberraschung")

  for (j in 1: length(emo_mean)) {
    y_col <- unlist(pre_sub[colnames(pre_sub) == paste0(emo_mean[j], frame_name[i])], use.names=FALSE)
    y_emo <- c(y_emo, mean(y_col, na.rm=TRUE))
    sd <- c(sd, sd(y_col, na.rm=TRUE))
  }

  name = main_emo[i]
  mypath=file.path("/Users/Jasmin/Documents/Psychologie/Master/Masterarbeit/Working directory", name)

  png(mypath)

  qplot(x_emo,y_emo, main = main_emo[i]) + geom_errorbar(aes(x=x_emo, ymin=y_emo-sd, ymax=y_emo+sd), width=0.25) + ylab("Rating") + xlab("Emotion")+
    theme(panel.grid.major = element_blank()) +  scale_y_continuous(breaks=seq(1,7,1)) + expand_limits(y=7)

  dev.off()
}

謝謝你的幫助!

使用ggsave()

不起作用:

library("ggplot2")
for (i in unique(diamonds$color)) {
  png(paste0("~/Desktop/colour_", i, ".png"))
  ggplot(diamonds, aes(carat, price)) + geom_point()
  dev.off()
}

可以工作:

for (i in unique(diamonds$color)) {
  ggplot(diamonds, aes(carat, price)) + geom_point()
  ggsave(paste0("~/Desktop/color_", i, ".png"))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM