【问题标题】:ggplot2 Labeling a multilayered bar plotggplot2 标记多层条形图
【发布时间】:2010-09-27 22:45:10
【问题描述】:

我想要做的是在下面的示例中使用它们各自的数据标签标记两个 geom_bar() 。到目前为止,我只能让其中一个出现:

输入():

x <- structure(list(variable = c("a", "b", "c"), f = c(0.98, 0.66, 
0.34), m = c(0.75760989010989, 0.24890977443609, 0.175125)), .Names = c("variable", 
"f", "m"), row.names = c(NA, 3L), class = "data.frame")

ggplot(x, aes(variable, f, label=paste(f*100,"%", sep=""))) + 
geom_bar() + 
geom_text(size=3, hjust=1.3, colour="white") +
geom_bar(aes(variable, m, label=paste(m*100,"%",sep="")), fill="purple") + 
coord_flip()

看看黑色的里面是如何有一个数据标签的。在同一个情节中,我想在紫色的内部做同样的事情。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    这对你有什么作用:

    ggplot(x, aes(variable, f, label=paste(f*100,"%", sep=""))) + 
    geom_bar() + 
    geom_text(size=3, hjust=1.3, colour="white") +
    geom_bar(aes(variable, m, label=paste(m*100,"%",sep="")), fill="purple") + 
    geom_text(aes(y=m,label=paste(round(m*100),"%",sep="")),size=3, hjust=1.3, colour="white") +
    coord_flip()
    

    【讨论】:

    • 我非常接近!我尝试了 geom_text() 的这种分层,但审美略有不同。谢谢!
    【解决方案2】:

    您可能需要考虑一种不同的方法。

    如果图表的主要目标是比较条形的长度/位置,那么在条形中包含数字会产生“模糊”条形,使眼睛/大脑更难正确判断条形的长度/位置.

    如果主要目标是比较数字,那么您所拥有的是一个布局不佳的表格(背景为彩色),如果数字排列正确,比较数字会更容易。

    一些替代方案包括使用单独的图表和表格(均正确布局),或者将数字放在边距(正确对齐)而不是条形顶部,或者在边缘单元格中创建带有条形图的表格。您可能还想考虑点图而不是条形图(ggplot2 应该仍然很容易做到这一点),堆叠条允许仅对第一个(最左边)类别和总数进行合理比较,在您的示例中比较不容易顶部和底部条的黑色部分的相对大小。

    【讨论】:

    • 就我个人而言,我的票是点图,但有些东西是老板不让你改变的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 1970-01-01
    • 2013-11-07
    • 2011-07-21
    • 2013-12-02
    • 2015-01-03
    • 2021-03-14
    相关资源
    最近更新 更多