为何ggplot2的geom_jitter会在Y轴方向出现抖动现象?
原因与解决办法
为什么Y轴会出现抖动?
geom_jitter() 本质是给散点同时添加X轴和Y轴的随机偏移,默认情况下:
width参数控制X轴抖动幅度,默认是数据范围的0.4倍height参数控制Y轴抖动幅度,当Y是连续变量时默认值为0.1(相对于Y轴数据范围的比例)
平时数据有差异时,Y轴的小抖动可能被忽略,但当所有Y值完全相同时,这个抖动就会变得非常明显。
怎么只保留X轴抖动?
在geom_jitter()里显式设置height = 0,就能彻底关闭Y轴方向的抖动:
library(ggplot2) condition = c(rep("A", 3), rep("B", 3)) fraction = c(rep(100, 3), rep(100, 3)) df = data.frame(condition, fraction) ggplot(df, aes(condition, fraction))+ geom_jitter(width = 0.2, height = 0)+ # 关闭Y轴抖动 labs(title = "", x = "", y = "fraction")+ ylim(95,105)+ theme_classic()
如果需要轻微的Y轴抖动来区分重叠点,也可以设置一个极小的height值(比如height=0.5),根据需求调整即可。
内容的提问来源于stack exchange,提问作者PM_from_Mars
相关产品推荐
相关产品推荐

