2012-01-04 16 views
9

Estoy tratando de hacer un diagrama de barras que tenga datos adicionales sobre él. Asociado con cada punto de datos hay un valor de un factor que indica por qué la altura es lo que es. Hasta el momento estoy bastante contento con mis resultados:¿Cómo se usa geom_point {ggplot2} para obtener puntos en los extremos de las barras sin obtener círculos en la leyenda?

library(ggplot2) 

tab <- read.table("http://www.cs.colorado.edu/~coxaj/table2.csv", 
      header=T, sep=",", strip.white=T) 
tab <- with(tab, tab[order(Analysis, -as.numeric(Analysis)), ]) 

bar_width <- 0.5 
space_width <- 0.8 

p <- ggplot(tab, aes(x=Filter,y=Depth,fill=Analysis)) + 
    geom_bar(position=position_dodge(width=space_width), width=bar_width) + 
    geom_point(position=position_dodge(width=space_width), aes(shape=Termination)) + 
    scale_shape_manual(values=c(1,4,5,6)) + 
    geom_hline(aes(yintercept=16, linetype=2)) + 
    scale_x_discrete(name='') + 
    scale_y_continuous(name='Search Depth') + 
    scale_fill_manual(values=c("#E66101", "#FDB863", "#B2ABD2", "#5E3C99")) + 
    theme_bw() 

ggsave(filename='table2.pdf', height=3, width=8) 

Esto produce una trama que tiene el siguiente aspecto: example output

El problema es que pone estos círculos sin sentido en la leyenda para su análisis. Me gustaría eliminar ese círculo, pero mantén la leyenda. ¿Ggplot2 me deja hacer esto?

+0

He intentado quitar el relleno = Análisis de las AES en la llamada ggplot lo que provoca que llenan = Análisis para ser aplicado a todas las parcelas. Al hacerlo, elimina el problema pero introduce otro. Los puntos en los extremos de las barras se barajan de manera semialeatoria dentro de las categorías de xaxis. –

Respuesta

18

probar esto:

p <- ggplot(tab, aes(x=Filter,y=Depth)) + 
    geom_bar(aes(fill = Analysis), 
      position=position_dodge(width=space_width), width=bar_width) + 
    geom_point(position=position_dodge(width=space_width), 
      mapping = aes(group = Analysis, shape=Termination)) + 
... 

enter image description here

+0

¡Guau! Gracias. Qué solución más fácil. –

Cuestiones relacionadas