r - 如何在条形图的每个条上叠加线条

标签 r ggplot2

假设我有一个像这样的条形图

ggplot(mtcars, aes(factor(cyl)))+geom_bar()

enter image description here

现在我想在 count = 5,4,6 处分别为 cyl = 4,6,8 叠加一条水平线。每条线都应该跨越它所覆盖的条的宽度。我该如何实现?

最佳答案

首先,将您的计数数据放入与 mtcars 中具有相同列名 cyl 的新数据框中。

df2<-data.frame(cyl=c(4,6,8),counts=c(5,4,6))

添加这些线的一种方法是使用 geom_crossbar() 并设置 yyminymax到相同的 counts 值。

ggplot(mtcars, aes(factor(cyl)))+geom_bar()+
  geom_crossbar(data=df2,aes(x=factor(cyl),
                  y=counts,ymin=counts,ymax=counts),color="green")

同样可以使用 geom_errorbar() 实现。

ggplot(mtcars, aes(factor(cyl)))+geom_bar()+
  geom_errorbar(data=df2,aes(x=factor(cyl),
                    ymin=counts,ymax=counts),color="green") 

enter image description here

关于r - 如何在条形图的每个条上叠加线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19668375/

相关文章:

R 命名空间 : how to get imports packages when installing and loading R packages from fresh R install.

r - SAS:如何将所有数据集变量包含到模型中

r - stat_sum 和 stat_identity 给出奇怪的结果

r - 如何使用 ggplot 创建百分比堆叠形状

r - 如何更改r中的树状图标签

python - R的relevel()和 Pandas 线性回归中的因子变量

r - 如何更正箱线图的标签,获取 R 中每对的 p 值

r - 使用 R 数学符号时,ggplot geom_text 会弄乱文本顺序

r - 如何在ggplot中将每一天添加为x轴标签

r - 使用存储为字符串的名称以编程方式选择列表元素