加粗 geom_text() 并在 R 中包含千位分隔符

问题描述 投票:0回答:2

我有以下 ggplot 代码。

mpg %>%
  ggplot2::ggplot(ggplot2::aes(x = as.character(class))) +
  ggplot2::geom_bar(fill = '#00798c')  +
  ggplot2::geom_text(stat = "count", ggplot2::aes(label = after_stat(count)), position = ggplot2::position_dodge(width = 0.8), vjust = -0.3) 

如何使 geom_text() 注释变为粗体并具有千位逗号分隔符?

我一直在查看文档,但不太确定如何做到这一点?

我尝试使用嵌套在

scales::comma(count)
内的
after_stat()
但出现错误。阅读文档后不知道如何将注释文本加粗。

r ggplot2
2个回答
7
投票

不确定您的问题是什么。

scales::comma
对我来说效果很好。要获得粗体标签,请添加
fontface="bold"
:

注意:由于值太小,我乘以 1000,这样我们就得到了千位分隔符。

library(ggplot2)

ggplot(mpg, aes(x = class)) +
  geom_bar(fill = '#00798c')  +
  geom_text(stat = "count", aes(label = after_stat(scales::comma(1000 * count))), 
            position = position_dodge(width = 0.8), 
            vjust = -.3, fontface = "bold")


0
投票

更新

comma() 现在被 label_number() 取代。

语法有点不同。没有像以前那样的 x 参数。 label_ 创建一个函数,然后将 after_stat 提供给它。

使用@stefan 的例子:

library(ggplot2)

ggplot(mpg, aes(x = class)) +
geom_bar(fill = '#00798c')  +
geom_text(stat = "count", 
          aes(label = scales::label_number(scale = 1000, big.mark = ",")(after_stat(count))), 
          position = position_dodge(width = 0.8), 
          vjust = -.3, fontface = "bold")
© www.soinside.com 2019 - 2024. All rights reserved.