我希望显示两种污染物对同一结果的影响,并且在没有任何群体时对情节感到满意。现在,当我想绘制全年的相同数据并按季节分层时,我要么得到误差条的重叠,要么有三个单独的面板,这些面板不是我需要的最佳选择。
可从此处访问示例数据:
https://drive.google.com/file/d/0B_4NdfcEvU7LV2RrMjVyUmpoSDg/edit?usp=sharing
作为以下代码的示例,我创建了一整年的情节:
ally<-subset(df, seas=="allyear")
ggplot(ally,aes(x = set, y = pinc,ymin = lcinc, ymax =ucinc,color=pair,shape=pair)) +
geom_point(position=position_dodge(width=0.5) ,size = 2.5) +
geom_linerange(position=position_dodge(width=0.5), size =0.5) + theme_bw() +
geom_hline(aes(yintercept = 0)) +
labs(colour="Pollutant", shape="Pollutant", y="Percent Increase", x="") +
scale_x_discrete(labels=c(NO2=expression(NO[2]),
NOx=expression(NO[x]),
Coarse= expression(Coarse),
PM25=expression(PM[2.5]),
PM10=expression(PM[10]))) +
theme(plot.title = element_text(size = 12,face="bold" )) +
theme(axis.title=element_text(size="12") ,axis.text=element_text(size=12))
但是当我添加facet_grid(.~ seas)时,我会有三个独立的面板。如何在一个面板中显示全年的这些数据并按季节划分?
答案 0 :(得分:3)
颜色或形状需要用来代表季节,而不是污染物。
然后这应该接近你想要的:
library(ggplot2)
ggplot(df, aes(x = set, y = pinc,ymin = lcinc, ymax =ucinc,
color=seas, shape=pair)) +
geom_point(position=position_dodge(width=0.5), size = 2.5) +
geom_linerange(position=position_dodge(width=0.5), size =0.5) + theme_bw() +
geom_hline(aes(yintercept = 0)) +
labs(colour="Season", shape="Pollutant", y="Percent Increase", x="") +
scale_x_discrete(labels=c(NO2=expression(NO[2]),
NOx=expression(NO[x]),
Coarse= expression(Coarse),
PM25=expression(PM[2.5]),
PM10=expression(PM[10]))) +
theme(plot.title = element_text(size = 12,face="bold" )) +
theme(axis.title=element_text(size="12") ,axis.text=element_text(size=12))
我认为刻面可以为您提供更好的图表 -
如果您想将注意力集中在每种污染物的季节比较上,请使用此(facet_grid(~pair, labeller=label_both)
):
如果您想将注意力集中在每个季节的污染物比较上,请使用此(facet_grid(~seas, labeller=label_both)
):