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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:39:02