2016-06-29 12 views
1

Ich habe einige Datenpunkte, und ich möchte einige der Punkte in meiner Visualisierung herausgreifen. Ich würde es tun, wie folgt:Nur bestimmte Beschriftungen einer ggplot-Legende anzeigen

df = data.frame(
    x = 1:4, y = 1:4, 
    special = c('normal', 'normal', 'normal', 'special') 
) 

ggplot(df) + 
    geom_point(aes(x, y, color = special)) + 
    scale_color_manual(values = c('red', 'black')) + 
    labs(color = "") + 
    theme_bw() 

example

Mein Problem hier ist, dass die schwarzen Punkte sehr selbsterklärend sind und nicht ein Etikett benötigen. Ich möchte nur das rote "spezielle" Etikett erscheinen. Gibt es eine Möglichkeit, das "normale" Etikett zu verstecken?

Antwort

2

Wenn Sie irgendeine Farbe, die andere als rot offen sind:

ggplot(df) + 
    geom_point(aes(x, y, color = special)) + scale_size(guide = "none") + 
    scale_color_discrete(breaks="special") + labs(color = "") + 
    theme_bw() 

enter image description here

EDIT:

cols <- c("normal" = "black","special" = "red") 
gg <- ggplot(df) + geom_point(aes(x, y, color = special)) + labs(color = "") + theme_bw() 
gg + scale_colour_manual(values = cols, limits = "special") 

enter image description here

Verwandte Themen