2012-04-19 14 views
5

El siguiente código se usa para trabajar antes de la versión .9 de ggplot2. ¿Esto ya no es posible?Agregue una línea vertical con ggplot cuando el eje x es un factor

df = data.frame(x = letters[1:26], y=abs(rnorm(26))) 
ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept='m') 

me sale el siguiente error:

Error in get(as.character(FUN), mode = "function", envir = envir) : 
    object 'm' of mode 'function' was not found 

Respuesta

10

no sé (no recuerdo) si el original acostumbrado a trabajar con la versión antigua de ggplot pero se puede utilizar un enfoque como el otro este:

ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept=which(df$x == 'm')) 

Hope this help !!!

+0

Muchas gracias. Esto funcionó perfectamente. Una pequeña nota para cualquiera que use esto, si especifica el xlim esto no funcionará correctamente. Por ejemplo, en realidad estoy invirtiendo el orden (es decir, de mayor a menor). En ese caso, el que devolvería la posición antes de invertir. Fácil de arreglar sin embargo. – jbryer

Cuestiones relacionadas