19 votos

¿Cómo puedo "esquivar" la posición de geom_point en ggplot2?

Estoy usando ggplot2 en R para hacer gráficos como los siguientes:

enter image description here

Las barras de error se solapan unas con otras, lo que da un aspecto muy desordenado. ¿Cómo puedo separar las barras de error para diferentes índices? He utilizado position="dodge" pero parece que no funciona. Aquí está la parte principal de mi código:

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 votos

¿Has probado diferentes valores de "dodge"? Por ejemplo algo así: position = position_dodge(width = 0.90) . Ver también este puesto .

0 votos

Gracias por su ejemplo. Sin embargo, acabo de probar con diferentes valores de anchura y sigue sin funcionar.

2 votos

Es difícil encontrar soluciones sin el conjunto de datos original. Pero tengo una pregunta: ¿Por qué sus $x$ -valores y los "grupos" lo mismo? ¿Qué es ntrunc ? ¿No debería group sea INDEX ?

12voto

AnT Puntos 131

El grupo debe = ÍNDICE en lugar de ntrunc en el 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")

La trama se ve mejor ahora.

enter image description here

7 votos

Esto no me funcionó hasta que utilicé geom_point(aes(shape=detectable),na.rm=TRUE, position=position_dodge(width=0.3))

0 votos

Sería estupendo tener un ejemplo de datos aquí porque no puedo reproducir tu resultado.

1 votos

@Nova mi opinión es que la respuesta se rompió cuando ggplot2 pasó de la versión 0.9.X a 1.X o 2.X

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X