Comment «esquiver» la position de geom_point dans ggplot2?

19

J'utilise ggplot2 dans R pour créer des tracés comme les suivants:

entrez la description de l'image ici

Les barres d'erreur se chevauchent, ce qui semble vraiment désordonné. Comment puis-je séparer les barres d'erreur pour différents indices? J'ai utilisé position = "esquiver" mais cela ne semble pas fonctionner. Voici la partie principale de mon code:

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")
ycc
la source
1
Avez-vous essayé différentes valeurs de «esquiver»? Par exemple quelque chose comme ça: position = position_dodge(width = 0.90). Voir aussi ce post .
COOLSerdash
Merci pour votre exemple. Cependant, je viens d'essayer différentes valeurs de largeur et cela ne fonctionne toujours pas.
ycc
2
Il est difficile de trouver des solutions sans le jeu de données d'origine. Mais une question que j'ai: pourquoi vos valeurs et les "groupes" sont-ils les mêmes? Qu'est-ce que c'est ? Ne devrait pas l' être ? xntruncgroupINDEX
COOLSerdash
Cela fonctionne maintenant après avoir changé group = "INDEX". Je pense que j'ai mal compris le sens de «groupe». Merci @COOLSerdash
ycc

Réponses:

12

Le groupe doit = INDEX au lieu de ntrunc dans les aes.

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")

L'intrigue est meilleure maintenant.

entrez la description de l'image ici

ycc
la source
7
Cela n'a pas fonctionné pour moi jusqu'à ce que j'utilisegeom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))
Nova
Ce serait formidable d'obtenir un exemple de données ici car je ne peux pas reproduire votre résultat.
Léo Léopold Hertz 준영
1
@Nova, je suppose que la réponse a été cassée lors ggplot2du passage de la version 0.9.Xà 1.Xou2.X
Richard Erickson