2012-04-19 64 views
5

以下代碼用於處理ggplot2的pre-version .9版本。這不可能了嗎?當x軸是一個因子時,用ggplot添加一條垂直線

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 2012-04-20 13:51:48

相關問題