【问题标题】:How can I add a table to a graph?如何将表格添加到图表中?
【发布时间】:2011-09-13 21:07:16
【问题描述】:

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

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)

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

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

【问题讨论】:

    标签: r graph statistics ggplot2


    【解决方案1】:

    这有点小技巧,但您可以使用 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 包中。

    【讨论】:

    • 非常感谢。完美运行!一个快速的问题:当我指定 -2 时,ggplot 不会在 Y 轴上显示该数字,所以一切都很好。但如果我指定说-20,它确实如此。有没有办法让 ggplot 显示从 0,80 开始的值,但仍然在 -20 处绘制值?如果太混乱,我会尝试解释。
    • 您可以指定哪些值在轴上获得标签。例如,您可以添加+scale_y_continuous(breaks=c(0,20,40,60,80))
    • @Brian,在一个完整的旁注中,你有没有看到你的左边第四个小节比其他小节略低?昨天我们在办公室遇到了这个话题,并试图弄清楚交易是什么......想知道您是否有任何想法?
    • @nzcoops,这是一个已知的错误stat.ethz.ch/pipermail/r-help/2011-July/284014.html
    • 谢谢布赖恩,我认为它必须是一个版本问题,因为我无法在我的 macbook 或 linux 服务器上复制,而一位同事在最新版本的 windows 上遇到了问题(我在 2.13仍然)。干杯。
    猜你喜欢
    • 1970-01-01
    • 2021-06-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    相关资源
    最近更新 更多