使用R中的循环绘制数据

使用R中的循环绘制数据,r,dataframe,loops,ggplot2,R,Dataframe,Loops,Ggplot2,我想绘制每个站点的每日流量图,并将其保存为png格式。我想为每个站点单独绘制png,如下图所示: 我有一个每个站点的数据帧列表,如下图所示: 我正在尝试使用以下代码,但由于R中止而无法工作,我不确定是否是因为数据量的原因: for (i in 1:length(listDF2)) { df1 <- as.data.frame(listDF2[[i]]) df1[is.na(df1)] <- 0 temp_plot <- ggplot(df1, aes(x =

我想绘制每个站点的每日流量图,并将其保存为png格式。我想为每个站点单独绘制png,如下图所示:

我有一个每个站点的数据帧列表,如下图所示:

我正在尝试使用以下代码,但由于R中止而无法工作,我不确定是否是因为数据量的原因:

for (i in 1:length(listDF2)) 
{
  df1 <- as.data.frame(listDF2[[i]])
  df1[is.na(df1)] <- 0
  temp_plot <- ggplot(df1, aes(x = day, y = DailyMeanStreamflow, colour=Station)) +
  geom_line(size = 1)  + 
  geom_point(size=1.5, shape=21, fill="white") + 
  facet_wrap(~ month, ncol = 3) +
  labs(title = "Daily Mean Streamflow",
       subtitle = "Data plotted by month",
       y = "Daily Mean Streamflow [m3/s]", x="Days") + 
  scale_y_continuous (breaks=seq(0,max(df1$DailyMeanStreamflow, na.rm=TRUE),by=1500)) +
  scale_x_continuous (breaks=seq(1,max(df1$day),by=1)) + theme(axis.text.x = element_text(size=9))

  print(temp_plot)

  name4<- paste("DailyStreamflow_byMonth","_", siteNumber[i], ".png", sep="")
  ggsave(temp_plot,filename = name4,width=22,height=11,units="in",dpi=500)

  #while (!is.null(dev.list()))
  dev.off()
}

for(i in 1:length(listDF2))
{

df1我不确定您的工作流中的问题发生在哪里。很难帮助您,因为我们没有。而且我也不确定您是只想在循环中生成绘图,还是(还)想将它们放在一个可视化中

不管怎样…我试着给你一个起点…也许这会有帮助

"%>%" <- magrittr::"%>%"

df_list <- list(
  A=dplyr::tibble(ID=1:10,
                  x=rnorm(10),
                  y=rnorm(10)),
  B=dplyr::tibble(ID=1:10,
                  x=rnorm(10),
                  y=rnorm(10)),
  C=dplyr::tibble(ID=1:10,
                  x=rnorm(10),
                  y=rnorm(10)),
  D=dplyr::tibble(ID=1:10,
                  x=rnorm(10),
                  y=rnorm(10)))

# Lapply approach
lapply(df_list, function(dat){
  p <- dat %>%
    ggplot2::ggplot(ggplot2::aes(x=x,y=y)) + 
    ggplot2::geom_point()
  print(p)
})

# Loop approach
for (i in 1:length(df_list)){
  p <- df_list[[i]] %>%
    ggplot2::ggplot(ggplot2::aes(x=x,y=y)) + 
    ggplot2::geom_point()
  print(p)
  fname <- paste("test","_", i, ".png", sep="")
  ggsave(p,
         filename=fname,
         width=22,
         height=11,
         units="in",
         dpi=500)
}

“%>%”您能使用
purrr
中的
map
功能做点什么吗?