我使用以下命令创建了一个躲闪的条形图:
a = c(1,1,1,1,1,1,1,2,2,2,2,2,2,2)
b = c("A","A","A","B","B","B","B","C","C","D","D","D","D","D")
c = c(60,20,20,80,5,5,5,50,50,25,25,25,20,5)
dat = data.frame(Group=a, Member=b, Percentage=c)
ggplot(dat, aes(x=Member, y=Percentage)) + geom_bar(stat="identity", position="dodge", fill="white", colour="black")
如果我有一组值:
table_values = c("2", "4", "2", "1")
table_total = c("A", "B", "C", "D")
tab = data.frame(Type=table_total, Value=table_values)
如何将此作为表格添加到我的图表中以使其对齐?像这样:
我可以手动执行此操作,但我有很多图表要生成,所以我想知道这是否可以自动化。有关如何做到这一点的任何建议吗?
答案 0 :(得分:8)
这有点像黑客,但您可以使用geom_text进行注释,将文本放置为稍微负y值。这将它放入绘图区域而不是轴下方。
ggplot(dat, aes(x=Member, y=Percentage)) +
geom_bar(stat="identity", position="dodge", fill="white", colour="black") +
geom_text(aes(x=table_total, label=table_values), y=-2, data=tab)
我更多参与的方法是创建两个单独的图,一个是条形图,一个是“表”(关闭几乎所有的主题元素)和使用类似align.plots
的东西(不确定)如果这是正确的名称)在ggExtra
包中。