2012-04-03 9 views
28

Ich habe vor kurzem von der Version 0.8.9 auf ggplot2 0.9.0 aktualisiert, und jetzt bekomme ich, dass meine Plot-Legenden nur die Faktorstufen anzeigen, die im Plot verwendet werden (es unterlässt die unbenutzten). Vorher würde es alle Faktorstufen in der Legende enthalten. Ich betreibe Windows 7 und R 2.15.0 (2.14.2 vor heute).ggplot2 0.9.0 automatisch unbenutzte Faktor Ebenen aus Plot Legende?

Finden auch andere das? Gibt es eine Möglichkeit, die ungenutzten Faktorstufen in meiner Plot-Legende anzuzeigen?

library(ggplot2) 

df <- data.frame(fruit = rep(c("apple", "orange"), times=11), 
       year = 1990:2011, 
       qty = rnorm(22, 100, 20)) 

# This plot only gives "apple" in the legend now. 
# Before, I used to get both "apple" and "orange". 
qplot(year, qty, data = subset(df, fruit=="apple"), colour = fruit) 

Die qplot() verwendet, um mir zu geben, sowohl "Apfel" und "orange" in der Legende (auch wenn es nur Punkte für "apple" waren). Jetzt bekomme ich nur "Apfel" in der Legende.

Grund dieser kam - ich mache viele Plots von Teilmengen eines Datensatzes und ich möchte die Legenden über Plots standardisiert (normalerweise würde ich schätzen, die ungenutzten Ebenen automatisch fallen gelassen werden und nicht müssen droppelvels()), aber Dies ist der eine Fall, den ich diese ungenutzten Ebenen möchte). Entschuldigung, wenn das eine Frage ist, die nur lokal für meinen Computer ist.

Antwort

32

Ja, wollen Sie drop = FALSE auf Ihre Farbskala hinzuzufügen:

ggplot(subset(df,fruit == "apple"),aes(x = year,y = qty,colour = fruit)) + 
    geom_point() + 
    scale_colour_discrete(drop = FALSE) 
1

Eine zweite Möglichkeit besteht darin, explizit die erforderlichen Einträge zu definieren, indem Sie mit dem limits Argumente:

ggplot(subset(df,fruit == "apple"),aes(x = year,y = qty,colour = fruit)) + 
    geom_point() + 
    scale_colour_discrete(limits = c("apple", "orange")) 
+1

Aus irgendwelchen Gründen, diese arbeitete für scale_color_manual() und drop = FALSE nicht – zer0hedge

Verwandte Themen