使用position_jitter会创建随机抖动,以防止数据点过度绘制。
在下面,我以棒球统计为例来说明我的问题。当我在两个图层上绘制相同的数据时,相同的抖动调用会使几何图形的抖动有所不同。
这是有道理的,因为它可能在两个调用中独立地产生了随机抖动,但产生了您可以在下面的图形中看到的问题。
p=ggplot(baseball,aes(x=round(year,-1),y=sb,color=factor(lg)))
p=p+stat_summary(fun.data="mean_cl_normal",position=position_jitter(width=3,height=0))+coord_cartesian(ylim=c(0,40))
p+stat_summary(fun.y=mean,geom="line",position=position_jitter(width=3,height=0))
尽管误差线点和线引用的数据相同,但它们是不相交的—线和点不连接。
是否有解决方法?我以为位置闪避也许是答案,但它似乎不适用于这些情节。或者,也许有某种方法可以获取mean_cl_normal调用来添加行?
最佳答案
这是当前ggplot2语法的弱点-除了自己添加抖动之外,没有其他方法可以解决。
或者,您可以执行以下操作:
ggplot(baseball, aes(round(year,-1) + as.numeric(factor(lg)), sb, color = factor(lg))) +
stat_summary(fun.data="mean_cl_normal") +
stat_summary(fun.y=mean,geom="line") +
coord_cartesian(ylim=c(0,40))
关于r - 是否可以以相同方式抖动两个ggplot几何图形?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3165346/