如何在ggplot2中“躲避” geom_point的位置?


19

我在R中使用ggplot2进行如下绘制:

在此处输入图片说明

误差线相互重叠,看起来确实很乱。如何分隔不同索引的错误栏?我使用了position =“ dodge”,但似乎无法正常工作。这是我的代码的主要部分:

plot =  ggplot(data,aes(x=ntrunc,y=beta_best,group=ntrunc,colour=INDEX))
       +geom_point(aes(shape=detectable),na.rm=TRUE,position="dodge") 
        +geom_errorbar(aes(x=ntrunc,ymax=beta_high,ymin=beta_low),na.rm=TRUE,position="dodge")

1
您是否尝试过“道奇”的其他值?例如类似的东西:position = position_dodge(width = 0.90)。另请参阅这篇文章
COOLSerdash

谢谢你的榜样。但是,我只是尝试了不同的width值,但仍然无法正常工作。
ycc 2014年

2
没有原始数据集,很难提出解决方案。但是我有一个问题:为什么您的和“组”相同?什么啊 不应该吗?xntruncgroupINDEX
COOLSerdash 2014年

我更改了group =“ INDEX”后,它现在可以工作了。我认为我误解了“团体”的含义。由于@COOLSerdash
YCC

Answers:


12

应为INDEX而不是aes中的ntrunc

plot =  ggplot(data, aes(x=ntrunc, y=beta_best, group=INDEX, colour=INDEX)) +
   geom_point(aes(shape=detectable), na.rm=TRUE, position="dodge") +
   geom_errorbar(aes(x=ntrunc, ymax=beta_high, ymin=beta_low), na.rm=TRUE, position="dodge")

现在情节看起来更好了。

在此处输入图片说明


7
直到我用完,这对我才起作用geom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova

最好在此处获取示例数据,因为我无法重现您的结果。
莱奥波德·赫兹(LéoLéopoldHertz),2016年

1
@Nova我的猜测是,ggplot2从版本0.9.X升级到1.X2.X
理查德·埃里克森
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.