R geom_bar有叠加,条之间没有距离

时间:2018-01-10 15:59:01

标签: r ggplot2 bar-chart

我想尝试这个情节:

library(ggplot2)
testdata <- data.frame(x=c(1:5),a=c(1:5),b=c(10:6))
ggplot(testdata, aes(x = x)) +
  geom_bar(aes(y=b), stat = "identity", fill="darkgrey")+
  geom_bar(aes(y=a), linetype="solid", colour="black", stat = "identity", fill=NA)

enter image description here

带有传奇。因为我不能在这里得到一个传奇(如果你知道如何,这将是一个很好的解决方法),我试图接近正确的&#39;在ggplot中绘制此图的方法,即使用长数据,例如:

testdata <- data.frame(x = c(1:5,1:5), y = c(1:5,10:6), group = c(rep("a",5), rep("b",5)))
ggplot(testdata, aes(x = x, y = y, group = group, fill = group)) +
  geom_bar(stat = "identity", linetype = "solid", colour = "black", position = position_dodge(width = 0))+
  scale_fill_manual(values = c(NA, "darkgrey"))

enter image description here

虽然我在这里有一个传奇,但是这些酒吧相距甚远。更改此设置的常用参数是width position_dodge,但我需要等于0才能进行100%叠加。所以我在理想世界中的问题是:我可以减少第二个图中条形的距离吗?如果这不可行,我可以在第一个情节中添加一个图例吗?任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

尝试更改width以外position_dodge

ggplot(testdata, aes(x = x, y = y, group = group, fill = group)) + geom_bar(width=1.5,stat = "identity", linetype = "solid", colour = "black", position = position_dodge(width = 0))+ scale_fill_manual(values = c(NA, "darkgrey"))