R语言ggplot2中geom_text()如何设置粗体与千分位逗号分隔符
ggplot2 柱状图数值标注加粗与千分位格式化实现
问题修正要点
代码报错、效果不生效的核心原因有两个:
- 粗体设置的参数位置错误:文本粗体不需要放在
aes()映射内部,直接作为geom_text()的层参数传入即可 - 千分位格式化的调用逻辑:
after_stat()内部支持直接嵌套格式化函数,之前调用scales::comma()报错通常是没有正确在after_stat内引用统计生成的count变量,或是未加载scales包导致函数找不到。
可直接运行的修正代码
library(ggplot2) library(dplyr) mpg %>% ggplot2::ggplot(ggplot2::aes(x = as.character(class))) + ggplot2::geom_bar(fill = '#00798c') + ggplot2::geom_text( stat = "count", ggplot2::aes(label = ggplot2::after_stat(scales::comma(count))), position = ggplot2::position_dodge(width = 0.8), vjust = -0.3, fontface = "bold" )
可选无依赖实现方案
如果不想依赖scales包做千分位格式化,可以替换为R基础函数实现,不需要额外安装加载包:
# 仅替换geom_text的label映射部分即可 ggplot2::aes(label = ggplot2::after_stat(format(count, big.mark = ",")))
内容的提问来源于stack exchange,提问作者Eisen
相关产品推荐
相关产品推荐

