我希望在按组编码时微调两个叠加图中的ggplot2形状类型。这可能吗?我创建了一个带点图,其中点用于均值观测,用两种不同的形状编码两个不同的播种率因子,用三种不同的颜色编码不同的肥料价格情景。我包括用于计算这些均值的值的抖动观测,也由相同的颜色和形状组列出的平均值点编码。我包括线显示每个平均值的标准误差。
为了提高可视化效果,我希望抖动观察结果为开放形状,而均值为闭合形状。
library(ggplot2)
p<-ggplot()+ geom_jitter(data=econ4,position=position_jitter(0.2),aes(x=location,y=profit,shape=seeding.rate,colour=urea.cost.USD,alpha=0.05))+theme_bw()+geom_hline(yintercept=0)+labs(y = "profit per ha (USD)")
p<-p+geom_point(data=econ4,aes(x=location,y=mean.profit,colour=urea.cost.USD,shape=seeding.rate))
p<-p+geom_linerange(data=econ4,aes(x=location,y=mean.profit,ymin=mean.profit-se.profit,ymax=mean.profit+se.profit,colour=urea.cost.USD))
#p<-p+scale_shape_manual(values=1:2)
p<-p+scale_colour_manual(values=c("#0072B2","#009E73", "#CC79A7"))
p<-p + coord_flip()
p<-p+scale_shape_manual(values=1:2) #this changes all shapes to open. I would like this to apply only to the geom_jitter.
1条答案
按热度按时间xtupzzrd1#
当你想要不同形状的抖动和平均点Map
seeding.rate
上的shape
是不够的。相反,你必须“重新编码”seeding.rate
来区分抖动和平均点,并得到四个不同的形状。为此,你可以Map例如。geom_jitter
中的shape
aes上的paste0(seeding.rate, ".jitter")
和geom_point
中的shape
aes上的paste0(seeding.rate, ".mean")
。因此,我们有四个不同的类别,我们可以为您分配所需的四种不同形状。此外,我稍微重构了您的代码,而不是手动计算
mean
和se
,我使用stat="summary"
来计算动态统计数据。使用一些假随机示例数据: