2011-03-03 26 views
10

¿Cómo puedo crear una leyenda que indique que la cruz roja es la media?leyenda ggplot2 para stat_summary

ggplot(results, aes(x=factor, y=proportionPositive)) + 
geom_boxplot() + 
stat_summary(fun.data = "mean_cl_normal", colour = "red", shape=4) 

enter image description here

Respuesta

15

Esta es una manera de hacerlo:

  1. asignar una estética a una forma, es decir, AES (forma = "significa")
  2. Crear una escala de forma manual de , es decir, scale_shape_manual()
# Create dummy data 
results <- data.frame(
    factor=factor(rep(1:10, 100)), 
    proportionPositive=rnorm(1000)) 

# Plot results 
ggplot(results, aes(x=factor, y=proportionPositive)) + 
     geom_boxplot() + 
     stat_summary(fun.data = "mean_cl_normal", 
       aes(shape="mean"), 
       colour = "red", 
       geom="point") + 
     scale_shape_manual("", values=c("mean"="x")) 

enter image description here

+1

Si desea utilizar PCH symbolsl que es posible utilizar los números Unicode. Para hacerlo, simplemente reemplace la 'x' por un valor Unicode: "\ U" y luego el valor Unicode (por ejemplo, '" \ U22C4 "'). Ver [Tabla Unicode] [1] [1]: http://www.fileformat.info/info/unicode/char/22c4/index.htm – Facottons

0

para que parezca como una leyenda por defecto (préstamos de código @Andrie):

ggplot(results, aes(x=factor, y=proportionPositive)) + 
     geom_boxplot() + 
     stat_summary(fun.data = "mean_cl_normal", 
       aes(shape=""), # Leave empty 
       colour = "red", 
       geom="point") + 
     scale_shape_manual("mean", values= "") # Will show mean on top of the line 
Cuestiones relacionadas