将段添加到ggplot2中的条形图(离散x轴)

时间:2015-05-29 16:17:48

标签: r ggplot2 bar-chart

我正在尝试使用ggplot2在条形图的每个条形图上绘制线段。我知道如何使用连续的X轴进行此操作,但不能使用此离散轴。 我所做的是一种" hack"用文字组成一条线。

在图片中看起来不错,但是我没有得到"限制"金属浓度,最重要的是,每次放大或缩小时,段的长度都会改变。

有谁知道哪种几何可以更好地实现这一点? enter image description here

df = data.frame('metal'=c("Cu", "Fr", "Zn"), 'observed'=c(550, 60, 100), 'limit'=c(200, 150, 120))
ggplot(data=df) + aes(x=metal) + 
  geom_bar(aes(y=observed), stat="identity", fill="grey") +
  geom_text(aes(y=limit, label="_____________"), size=rel(6), color="red")

修改

问题接近this一个

2 个答案:

答案 0 :(得分:2)

改编自this answer

ggplot(data=df) + aes(x=metal) + 
  geom_bar(aes(y=observed), stat="identity", fill="grey") +
  geom_errorbar(aes(y=limit,ymin=limit,ymax=limit,colour="limit"))

enter image description here

答案 1 :(得分:1)

这是一种方法。

ggplot(data=df) + aes(x=metal) + 
  geom_bar(aes(y=observed), stat="identity", fill="grey", color = "grey60") +
  geom_bar(data = df, aes(y=limit), stat="identity", fill="transparent", color = "grey30") +
  geom_text(aes(y = limit +5), label = df$limit)

enter image description here