如何在图表中添加表格?

时间:2011-09-13 21:07:16

标签: r graph statistics ggplot2

我使用以下命令创建了一个躲闪的条形图:

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)

如何将此作为表格添加到我的图表中以使其对齐?像这样:

enter image description here

我可以手动执行此操作,但我有很多图表要生成,所以我想知道这是否可以自动化。有关如何做到这一点的任何建议吗?

1 个答案:

答案 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)

Using geom_text to make something like a table in a graph

我更多参与的方法是创建两个单独的图,一个是条形图,一个是“表”(关闭几乎所有的主题元素)和使用类似align.plots的东西(不确定)如果这是正确的名称)在ggExtra包中。