geom_text geom_label_repel r ggplot2

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



geom_text position options (2)

Recientemente me actualicé a ggplot2 0.9.0 desde la versión 0.8.9, y ahora entiendo que mis leyendas de trama solo muestran los niveles de factor utilizados en la trama (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 diagramació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 parcelas 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 usando 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"))