是否可以添加从0到下图所示点的水平线?
这是迄今为止的代码:
ggplot(data, aes(x=change, y=industry, color=geo)) + geom_point() +
scale_x_continuous(labels = scales::comma) + geom_vline(xintercept = 0)
或者,我可以使用geom_bar()
,但我不确定如何在没有他们总结的情况下展示伦敦和英国。
tl;博士,你可以使用geom_bar()
与position="stack", stat="identity"
。或者你可以使用geom_segment()
。
dd <- expand.grid(industry=c("property",
"manufacturing",
"other"),
geo=c("London","UK"))
set.seed(101)
dd$change <- runif(6,min=-30,max=30)
这就是你如何用geom_bar
做到的
library(ggplot2)
ggplot(dd,aes(x=industry,y=change,
fill=geo))+
geom_bar(stat="identity",
position="dodge")+
coord_flip()
或者与geom_segment()
:
ggplot(dd,aes(x=change,y=industry,
colour=geo))+
geom_point(size=2)+
geom_segment(aes(xend=0,yend=industry))
您可能需要考虑在第二种情况下手动避开位置,但position_dodge
中的ggplot
只能水平躲闪,因此您应该切换x和y并使用coord_flip()
,或使用position_dodgev
包中的ggstance
。