在 ggplot barplot 上添加标记线

Adding marker lines on ggplot barplot

如何在 ggplot 条形图中的每个条上添加一条线?

例如使用内置的ggplot例子:

mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
ggplot(mm, aes(x = factor(cyl), y = mmpg)) + geom_bar(stat = "identity")

产生这个

现在我有一个向量 y <- c(10, 5, 5),它是我想在每个条上绘制一条线的高度,生成类似这样的东西

我该怎么做?我尝试了 geom_hline,但生成的线条却横跨整个图表。

这应该有效:

y <- c(10, 5, 5)

mm <- ddply(mtcars, "cyl", summarise, mmpg = mean(mpg))
mm <- cbind(mm, y) # get vector into data frame

ggplot(mm, aes(x = factor(cyl), y = mmpg)) + 
geom_bar(stat = "identity") +
geom_errorbar(aes(yintercept = y, ymax=y, ymin=y), 
              color = "white", size = 2)

我们使用 geom_errorbar() 在数据框中绘制线条,然后通过手动将 ymaxymin 设置为 y 值来减小它们的宽度。

上面的代码产生了这样的结果:

致谢 this 来源。