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
相关产品推荐
相关产品推荐

