首页 文章

在ggplot条形图上添加标记线

提问于
浏览
1

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

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

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

产生这个

enter image description here

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

enter image description here

我该怎么做?我尝试了 geom_hline ,但这会产生跨越整个图表的线条 .

1 回答

  • 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)
    

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

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

    enter image description here

    信用转到this来源 .

相关问题