在ggplot条形图上添加标记线

Ric*_*cky 1 r bar-chart ggplot2

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

例如,使用内置的ggplot示例:

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

产生这个

在此输入图像描述

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

在此输入图像描述

我该怎么做?我尝试过geom_hline,但是会产生横跨整个图表的线条.

Fel*_*lix 5

这应该工作:

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)
Run Code Online (Sandbox Code Playgroud)

我们使用geom_errorbar()绘制在数据帧中的行,然后通过手动设置减少它们的宽度ymaxymin所述y值.

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

在此输入图像描述

信用来源于这个来源.