1
假设我有一个柱状图像如何覆盖条形图
ggplot(mtcars, aes(factor(cyl)))+geom_bar()
现在我想在覆盖数的水平线= 5,4,6的各条线路上对于cyl分别为4,6,8。每条线应该跨越它所覆盖的条的宽度。我该如何做到这一点?
假设我有一个柱状图像如何覆盖条形图
ggplot(mtcars, aes(factor(cyl)))+geom_bar()
现在我想在覆盖数的水平线= 5,4,6的各条线路上对于cyl分别为4,6,8。每条线应该跨越它所覆盖的条的宽度。我该如何做到这一点?
冷杉,把你的计数数据在具有与mtcars相同的列名cyl的新数据框中。添加这些行
df2<-data.frame(cyl=c(4,6,8),counts=c(5,4,6))
的一种方法是使用geom_crossbar()
并设置y
,ymin
ymax
和向的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")