Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用foreach实现基于级别的子集_R_Ggplot2_Foreach_Subset - Fatal编程技术网

使用foreach实现基于级别的子集

使用foreach实现基于级别的子集,r,ggplot2,foreach,subset,R,Ggplot2,Foreach,Subset,我想保存一系列基本上如下所示的图形: 这是由以下代码生成的: # orange is pre, red is intra, green is post df$Month <- as.Date(df$activityDate) ggplot(df, aes(x= Month, y= level)) + geom_jitter(colour= ifelse(df$phase == "post", 'springgreen4', ifelse(

我想保存一系列基本上如下所示的图形:

这是由以下代码生成的:

# orange is pre, red is intra, green is post
df$Month <- as.Date(df$activityDate)
ggplot(df, aes(x= Month, y= level)) + 
geom_jitter(colour= ifelse(df$phase == "post", 'springgreen4',
                        ifelse(df$phase == "pre", 'orange1', 'red3')),
                            size= 3, shape= 19, height=0.20, alpha = 0.6) +
theme_bw() +
    labs(title="EPA Levels Over Time", x= "Date", y= "EPA Level") +
    scale_x_date(labels= date_format("%m-%Y")) +
# main title
  theme(plot.title = element_text(face= 'bold', size=18)) +
# x axis title 
  theme(axis.title.x = element_text(face= 'bold', size=14)) +
# y axis title
  theme(axis.title.y = element_text(face= 'bold', size=14)) +
# x axis tick mark labels
  theme(axis.text.x= element_text(hjust = 1, angle = 45, face= 'bold', size=10)) +
# y axis tick mark labels
  theme(axis.text.y = element_text(face= 'bold', size=12)) +
    facet_grid(~ epa) # show each epa
#橙色为前置,红色为内部,绿色为后置

df$Month在没有看到实际数据的情况下很难判断。您能从
geom\u jitter
中删除颜色吗?我想这和颜色有关。我认为你正在设置许多颜色。您可以尝试
geom\u jitter(aes(color=phase))
并添加
scale\u color\u手动(值=c(“pre”=“orange”,“intra”=“red”,“post”=“springgreen4”)
。是的,从geom\u jitter中删除color=可以解决问题,但是我还应该如何进行条件点着色?在循环中设置颜色时,您需要参考
dfgraph
而不是
df
。一个更好的方法是按照@ricoderks所建议的美学方法绘制颜色图。
foreach(i=levels(df$resident)) %do% {
  dfgraph <- df[df$resident==i,]
ggplot(dfgraph, aes(x= Month, y= level)) + 
geom_jitter(colour= ifelse(df$phase == "post", 'springgreen4',
                        ifelse(df$phase == "pre", 'orange1', 'red3')),
                            size= 3, shape= 19, height=0.20, alpha = 0.6) +
theme_bw() +
    labs(title="EPA Levels Over Time", x= "Date", y= "EPA Level") +
    scale_x_date(labels= date_format("%m-%Y")) +
# main title
  theme(plot.title = element_text(face= 'bold', size=18)) +
# x axis title 
  theme(axis.title.x = element_text(face= 'bold', size=14)) +
# y axis title
  theme(axis.title.y = element_text(face= 'bold', size=14)) +
# x axis tick mark labels
  theme(axis.text.x= element_text(hjust = 1, angle = 45, face= 'bold', size=10)) +
# y axis tick mark labels
  theme(axis.text.y = element_text(face= 'bold', size=12)) +
    facet_grid(~ epa) # show each epa
  ggsave(filename = paste0(i, ".png"))
  }