2012-04-19 4 views
5

Следующий код используется для предварительной версии .9 ggplot2. Разве это невозможно?Добавить вертикальную линию с ggplot, когда ось x является фактором

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

Я получаю следующее сообщение об ошибке:

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

ответ

10

я не знаю (не помню), если оригинал используется для работы со старой версией ggplot, но вы можете использовать другой подход, как этот:

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

Надеюсь, что эта помощь !!!

+0

Большое спасибо. Это сработало отлично. Небольшое примечание для тех, кто использует это, если вы укажете xlim, это будет работать неправильно. Для экземпляров я фактически изменяю порядок (т. Е. Самый большой и наименьший). В этом случае это будет возвращать позицию перед реверсом. Легко исправить. – jbryer

Смежные вопросы