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

R语言:基于列重排DataFrame实现ggplot按y值排序及分组得分对比

嘿,我看了你需求和初步写的代码,刚好可以帮你完善成能精准满足需求的可视化方案,既清晰展示各项目的最值,又能直观对比两组的整体得分情况~

需求回顾
  • 现有DataFrame,需重排后用ggplot制作可视化
  • 核心目标:直观查看各项目的最高值与最低值,同时对比两组的整体得分高低
优化后的完整代码
library(ggplot2)
# 读取目标数据
cor.data <- read.csv("https://dl.dropbox.com/s/p4uy6uf1vhe8yzs/cor.data.csv?dl=0", stringsAsFactors = F)
# 按得分(r.val)和项目(pic)排序,让数据展示更规整
cor.data.sorted <- cor.data[with(cor.data, order(r.val, pic)),]

# 制作组合可视化图表:箱线图+散点,兼顾整体分布与单个项目最值
ggplot(cor.data.sorted, aes(x = pic, y = r.val, fill = group)) + 
  # 箱线图展示两组得分的整体分布(中位数、离散程度)
  geom_boxplot(alpha = 0.7, position = position_dodge(width = 0.8)) + 
  # 散点图标记每个项目的具体得分,方便定位最值
  geom_jitter(width = 0.2, size = 2, position = position_dodge(width = 0.8)) + 
  # 设置图表标签,提升可读性
  labs(title = "两组项目得分对比(含各项目最值)",
       x = "项目名称",
       y = "得分值",
       fill = "分组") +
  # 使用简洁的主题,优化视觉效果
  theme_bw() +
  # 旋转x轴项目标签,避免重叠
  theme(axis.text.x = element_text(angle = 45, hjust = 1))
关键细节说明
  • 排序逻辑:order(r.val, pic)先按得分排序、再按项目名排序,让后续可视化里的散点排列更规整,一眼就能找到每个项目的最高/最低分
  • 可视化选择:箱线图能快速看出两组的整体得分趋势(比如哪组中位数更高、离散程度如何),叠加散点则能精准定位每个项目的具体数值,完美匹配你的双重需求
  • 注意:如果你的分组列不是group,记得把代码里的fill = group改成实际的列名哦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:53:11