我有以下 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()
但出现错误。阅读文档后不知道如何将注释文本加粗。
不确定您的问题是什么。
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")
更新
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")