You need to enable JavaScript to run this app. 如何基于文本文件数据使用ggplot绘制多组并列小提琴图
优惠活动
大模型
产品
解决方案
定价
更多

如何基于文本文件数据使用ggplot绘制多组并列小提琴图

解决方法

核心思路

ggplot2 基于长格式数据实现多组图形的批量映射,你当前的数据为宽格式,需要先将多列X变量转换为「变量名-测量值」的长结构,即可一次性生成并列小提琴图。

注:你原有代码中将x轴设为Count的话,每个Count取值下每个变量仅对应1个数据点,无法生成用于展示数据分布的小提琴图,默认方案调整为x轴为变量类别,展示每个变量所有测量值的分布,如有特殊需求可参考后续可选方案。

操作步骤

  1. 安装并加载所需依赖(如果已经安装可以跳过install步骤)
# 安装依赖包
install.packages("ggplot2")
install.packages("tidyr")
# 加载包
library(ggplot2)
library(tidyr)
  1. 转换数据为长格式
# 保留Count列,将其余所有X开头的列转换为长结构
long_data <- pivot_longer(
  data = myData,
  cols = -Count, # 排除不需要转换的Count列
  names_to = "变量分组", # 存储原列名的新列名
  values_to = "测量值" # 存储原数值的新列名
)
  1. 绘制并列小提琴图
ggplot(long_data, aes(x = `变量分组`, y = `测量值`, fill = `变量分组`)) +
  geom_violin() +
  # 可选:在小提琴内部添加箱线图展示分位数
  # geom_boxplot(width = 0.1, color = "black") +
  labs(x = "变量尺寸", y = "结果数值") +
  theme_bw()

可选方案:按Count分组展示多组小提琴

如果你确实需要以Count为x轴,每个Count下并列展示多个变量的小提琴,使用如下绘图代码即可:

ggplot(long_data, aes(x = factor(Count), y = `测量值`, fill = `变量分组`)) +
  geom_violin(position = position_dodge(0.8)) +
  labs(x = "Count索引", y = "结果数值", fill = "变量分组") +
  theme_bw()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 20:54:00