2012-04-19 18 views
5

Poniższy kod jest używany do pracy w wersji wstępnej .9 programu ggplot2. Czy to już nie jest możliwe?Dodaj pionową linię z ggplot, gdy oś X jest czynnikiem

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

pojawia się następujący błąd:

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

Odpowiedz

10

nie wiem (nie pamiętam) jeżeli oryginał używane do pracy z starej wersji ggplot ale można użyć innego podejścia jak ten:

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

Mam nadzieję, że ta pomoc!

+0

Dziękuję bardzo. To działało idealnie. Mała uwaga dla każdego, kto tego używa, jeśli podasz xlim, to nie zadziała poprawnie. W przypadku wystąpień faktycznie odwracam kolejność (tj. Od największej do najmniejszej). W takim przypadku, który zwróci pozycję przed cofnięciem. Łatwe do naprawienia. – jbryer

Powiązane problemy