如何使用ggplot和geom_bar()在r中的条形图上添加y轴值?

时间:2020-05-03 07:00:16

标签: r ggplot2 data-visualization geom-bar geom-text

您好,我一直在尝试通过特定列的总和来汇总我的数据集,并直接使用ggplot和geom_bar()来这样做,而不是使用tidyvers和dplyr库。

我了解了重量美学,它可以帮助将条形图绘制为特定特征的总和,而不是计数,并且有效。

问题是我无法在条形图上绘制y值,因为我不知道如何编写geom_text(????) 代码:

p1<-ggplot(df, aes(x= ageBracket, fill= movement, **weight= amount**))+ geom_bar(width= 0.5, position= 'dodge')+ theme_hc()+scale_x_discrete('Age Group', limits=c("16 to 25 years", "26 to 35 years", "36 to 45 years", "> 46 years"))+ theme(legend.position= "bottom",legend.background = element_rect(fill="lightblue", size=0.2, linetype="solid"))+ scale_fill_brewer(palette = "Dark2")+ scale_y_continuous("Amount per Age Group",labels = comma)+ **geom_text(?????)**
print(p1)

Blockquote

这里的填充帮助我隔离了我所躲避的条形图,权重帮助我基于以下元素的过滤器对数据进行了求和:Movement&ageBracket,我只想将y轴值放在相应条形图的顶部,而不想要创建一个单独的数据框。我该怎么办??

1 个答案:

答案 0 :(得分:0)

使用权重美学时,当前版本的ggplot2不允许在geom_text()中使用标签。您必须总结数据框,然后使用标签美感进行常规处理。

实际上,并不需要使用mtcars数据集显示的那样多的额外工作。仅需要多两行,并且如果将结果转发给管道,则无需创建新的数据框。

STATIC_PATHS = [
    'images',
    'extra',
    'html',
]
EXTRA_PATH_METADATA = {
    'extra/custom.css': {'path': 'custom.css'},
    'extra/robots.txt': {'path': 'robots.txt'},
    'extra/favicon.ico': {'path': 'favicon.ico'},
    'extra/CNAME': {'path': 'CNAME'},
    'extra/LICENSE': {'path': 'LICENSE'},
    'extra/README': {'path': 'README'},
    'html/page_name.html' : {'path' : 'page_name.html'}
}

(1)使用权重美学将library(ggplot2) library(dplyr) data(mtcars) mpg的{​​{1}}变量求和。无法将标签添加到条形图(6行)。

am

(2)首先汇总数据,然后将标签美化与geom_text结合使用,可以将标签添加到条形图(多出2行)。

cyl

enter image description here