ggplot2 0.9.0 elimina automáticamente los niveles de factor no utilizados de la leyenda de trazado?

Recientemente me actualicé a ggplot2 0.9.0 desde la versión 0.8.9, y ahora entiendo que mis leyendas de ttwig solo muestran los niveles de factor utilizados en la ttwig (omite los que no se usaron). Antes incluiría todos los niveles de factores en la leyenda. Estoy ejecutando Windows 7 y R 2.15.0 (2.14.2 antes de hoy).

¿Alguien más encuentra esto también? ¿Hay alguna forma de que pueda mostrar los niveles de factores no utilizados en la leyenda de mi diagtwigción?

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) 

El qplot () solía darme “manzana” y “naranja” en la leyenda (aunque solo había puntos para “manzana”). Ahora solo obtengo “manzana” en la leyenda.

Motivo por el que esto ocurrió: estoy haciendo muchas plots de subconjuntos de un conjunto de datos y quiero que las leyendas estén estandarizadas en todos los trazados (normalmente apreciaría que los niveles no utilizados se descarten automáticamente y no tengan que escribir droplevels (), pero este es el caso quiero esos niveles sin usar). Disculpas si esta es una pregunta local en mi computadora solamente.

Sí, desea agregar drop = FALSE a su escala de color:

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

Una segunda forma es definir explícitamente las entradas requeridas utilizando el argumento de limits :

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