添加与ggplot的垂直线时,x轴是一个因素(Add a vertical line with gg

2019-07-29 01:34发布

下面的代码使用工作之前的版本GGPLOT2 .9。 这是不可能的了?

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

Answer 1:

我不知道(不记得了),如果使用原来的旧版本ggplot的工作,但你可以使用像这样的一个另一种方法:

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

希望这有助于!



Answer 2:

这个答案是那种人谁想要增加垂直线在自定义位置分类x轴的更广泛的讨论。

我有五组,每组五个因素。 我要添加的最后一个因素后面4条垂直线各组分开的五个组中(在这种情况下,“E”的位置)。 从@dickoa该方法不工作我的情况。 当我使用:

geom_vline(xintercept=which(df$x == 'm'))

它只会增加在第三组的“M”垂直线。 我只是觉得,我可以尝试这样的某物:

geom_vline(xintercept = c(1.5,2.5,3.5,4.5))

至少这工作适合我的情况。 您可能需要多试几次找到模式适合您的情况。

我总是想知道如何基于X / Y轴的比例增加垂直/水平线上。 例如,xintercept = 0.5手段加在x轴的中间垂直线,并xintercept = 0.25意味着第一季度。 但是我无法找到有关此主题的任何知识。



文章来源: Add a vertical line with ggplot when x-axis is a factor
标签: r ggplot2