2012-09-07 25 views
6

En lugar de las líneas de color sobre un fondo gris que actualmente componen la clave de leyenda, me gustaría cuadrados o círculos de color junto a la etiqueta de clave para que los colores fácilmente visible. ¿Cómo puedo hacer eso? Aquí es un fragmento de código para su uso como un ejemplo:Cambiar las líneas de colores de ggplot en leyenda por cuadrados o círculos

mry <- do.call(rbind, by(movies, round(movies$rating), function(df) { 
    nums <- tapply(df$length, df$year, length) 
    data.frame(rating=round(df$rating[1]), year = as.numeric(names(nums)), 
    number=as.vector(nums)) 
})) 

ggplot(mry, aes(x=year, y=number, colour=factor(rating))) + geom_line() + 
scale_colour_brewer(palette="YlGnBu") 

Respuesta

4

un truco que viene a hacer círculos ....

ggplot(mry, aes(x=year, y=number, colour=factor(rating))) + 
    scale_colour_brewer(palette="YlGnBu") + 
    geom_point() +  
    geom_point(size=5,colour="white",show_guide=FALSE) + 
    opts(
    panel.background = theme_rect(fill = "transparent"), 
    panel.grid.minor = theme_blank(), 
    panel.grid.major = theme_blank(), 
    plot.background = theme_rect(fill = "transparent",colour = NA) 
) + geom_line(show_guide=FALSE) 

enter image description here

+0

se podía hacer cuadrados, etc., cambiando la forma de los puntos –

+0

también el tamaño de los círculos y cuadrados puede editarse fácilmente si los quiere más grandes –

+0

** ACTUALIZACIÓN ** 'opts' ahora está privado, use' theme' y reemplace 'theme_rect' con' element_rect' etc ... –

Cuestiones relacionadas