You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言绘制条形图时如何调整坐标轴刻度并在条形末端添加数值标签?

R语言ggplot2条形图问题解决方案

1. x轴刻度异常修复

你使用了coord_flip()进行坐标翻转,原本映射到y轴的Population变量会变为水平显示的x轴,常见的刻度异常(如科学计数法显示、刻度间隔不合理)可通过调整y轴的刻度参数解决。

2. 条形末端数值标签添加

新增geom_text()图层即可实现数值标签的添加,调整位置参数可控制标签显示在条形内部或外部。


完整可运行代码

如果运行时提示缺失scales包,请先执行install.packages("scales")安装依赖。

library(ggplot2)
library(scales)

ggplot(crashes_deaths_injuries_TA_pop, aes(x = reorder(TA_name, Population), y = Population, fill = Population)) +
  geom_col(alpha = 0.7) +
  # 添加条形末端数值标签,hjust参数控制水平位置,负值为条形外侧,正值为内侧
  geom_text(aes(label = comma(Population)), hjust = -0.2, size = 3.5) +
  scale_fill_distiller(palette = "Reds", direction = 1) +
  # 调整人口轴刻度格式,取消科学计数法,右侧预留空白避免标签被截断
  scale_y_continuous(labels = comma, expand = expansion(mult = c(0, 0.15))) +
  coord_flip() +
  labs(x = "", y = "Population", fill = "Population",
       title = "Populations of South Island TA's | 2018",
       caption = "Data: Census 2018, StatsNZ") +
  theme_minimal() +
  theme(
    legend.position = "none",
    # 若TA名称标签重叠,可取消下方注释调整字体大小
    # axis.text.y = element_text(size = 9)
  )

代码关键说明

  • scale_y_continuous(labels = comma):将人口数值格式化为带千分位的常规数字,解决科学计数法导致的刻度异常问题
  • expand = expansion(mult = c(0, 0.15)):在画布右侧预留15%的空白区域,避免数值标签超出画布被截断
  • geom_text(hjust = -0.2):控制标签在条形右侧外侧显示,若要放在条形内部,可将参数调整为1.1

内容的提问来源于stack exchange,提问作者scumbagsurfer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:15:04