以下代码用于 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')
我收到以下错误:
获取错误(as.character(FUN),模式=“功能”,环境=环境):找不到模式“功能”的对象“m”
我不知道(不记得)您的原件是否曾经使用旧版本的 ggplot 但您可以使用另一种方法,例如:
ggplot(df, aes(x=x, y=y)) + geom_bar() + geom_vline(xintercept=which(df$x == 'm'))
希望这有帮助!
对于想要在分类 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 表示第一季度。但是我找不到有关此主题的任何知识。