使用R中的循环绘制数据
我想绘制每个站点的每日流量图,并将其保存为png格式。我想为每个站点单独绘制png,如下图所示: 我有一个每个站点的数据帧列表,如下图所示: 我正在尝试使用以下代码,但由于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 =
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
功能做点什么吗?