R语言如何基于给定EMSE数据框绘制分组对比条形图
R语言实现分组条形图对比不同年份EMSE指标
实现逻辑
- 先构造对应结构的数据集,将宽格式数据转换为长格式,适配分组绘图的字段映射要求
- 用条形图的并列排布参数,实现同组别下两个年份指标的并排展示
- 可选添加数值标签,直接展示具体数值,进一步提升对比效率
完整可运行代码
# 首次使用需要先安装依赖包,执行以下两行即可 # install.packages("ggplot2") # install.packages("tidyr") # 加载绘图依赖包 library(ggplot2) library(tidyr) # 构造你提供的原始数据集 df <- data.frame( group = c("Suicidio", "Soledad", "Preocupacion", "Sin Amigos"), EMSE_2012 = c(16.6, 9.1, 8.4, 5.5), EMSE_2018 = c(21.5, 16.3, 12.7, 5.2) ) # 宽表转长表,把年份单独提取为分类字段 df_long <- pivot_longer( data = df, cols = c(EMSE_2012, EMSE_2018), names_to = "year", names_prefix = "EMSE_", values_to = "emse_score" ) # 绘制分组并列条形图 ggplot(df_long, aes(x = group, y = emse_score, fill = year)) + # position_dodge参数控制同组条形的并列排布 geom_col(position = position_dodge(0.8), width = 0.7) + # 给条形添加数值标签,方便直接查看数值 geom_text( aes(label = emse_score), position = position_dodge(0.8), vjust = -0.2, size = 3.5 ) + labs( x = "分组", y = "EMSE得分", fill = "年份" ) + # 可根据自己的喜好替换主题、调整颜色、坐标轴角度等样式 theme_minimal()
效果说明
运行代码后会生成4个组别的并列条形图,每个组别下2012、2018年的EMSE得分条形并排展示、按颜色区分,条形上方直接标注具体数值,同组两个年份的指标差异可以直观识别。
内容的提问来源于stack exchange,提问作者AgusDam87
相关产品推荐
相关产品推荐

