完整代码获取关注公众号“八宝粥的科研日记”回复“云雨图”即可获得通道
该图采用散点图、箱线图和半小提琴图组合的方式展示不同分组数据的分布特征与组间差异。横坐标表示不同实验组或指标组,纵坐标表示对应指标的测量值。每个分组均由三类图形元素共同构成:左侧散点表示每个样本的原始观测值,能够直观反映样本数量、个体差异和潜在离群值;中间箱线图表示数据的中位数、四分位范围及整体离散程度,用于概括组内数据的集中趋势和波动范围;右侧半小提琴图表示数据的核密度分布,图形越宽说明该数值区间内样本越集中,能够进一步揭示数据分布形态。
图中不同分组采用不同颜色和散点形状进行区分,有助于增强组间识别度。浅灰色横向虚线网格用于辅助判断不同组在纵坐标方向上的数值差异。图上方的横向连接线表示组间统计比较,星号表示显著性水平,其中 *** 通常表示差异达到极显著水平,即 P < 0.001。需要注意的是,图中仅能对已标注显著性连接线的组间关系进行统计判断,未标注的组间差异不能直接推断为显著或不显著。
不同配色效果展示:






一、各元素详细解读:
该图采用散点图、箱线图和半小提琴图组合的方式展示不同分组数据的分布特征和组间差异。横坐标表示不同实验组、处理组或分类变量,纵坐标表示对应的测量值。与单一柱状图或箱线图相比,该组合图能够同时呈现原始样本点、数据集中趋势、离散程度、分布密度和统计显著性,因此更适合用于科研论文中展示组间数据差异。
图中的散点代表每个独立样本的原始观测值。每一个点对应一个样本,能够直观反映样本数量、组内个体差异、数据集中区域以及潜在离群值。散点在水平方向上设置了轻微随机抖动,使数值相近或相同的样本不会完全重叠,从而更清楚地展示真实数据分布。散点越集中,说明该组样本值越接近;散点分布范围越宽,说明该组内部差异越大。
每组中间的箱线图用于概括数据的主要统计特征。箱体通常表示第 25 百分位数至第 75 百分位数之间的范围,即四分位间距;箱体中间的横线表示中位数;上下延伸的线段表示数据的主要波动范围。箱线图能够快速反映每组数据的中心位置和离散程度。箱体整体位置越高,说明该组整体水平越高;箱体越宽或上下须越长,说明该组数据波动越明显;中位数位置的变化可以反映不同组之间中心趋势的差异。
每组右侧的半小提琴图用于展示数据的分布密度。小提琴图的宽度代表该数值区间内样本分布的密集程度,某一区域越宽,说明该范围内样本越集中;越窄,说明该范围内样本较少。半小提琴图保留了完整小提琴图的密度分布信息,同时避免与散点图和箱线图过度重叠,使图形更加简洁。通过半小提琴图可以观察数据是否呈单峰分布、多峰分布、偏态分布或分布范围扩大等特征。
图中的颜色和散点形状用于区分不同分组。每个分组使用相同的颜色体系对应散点、箱线图和半小提琴图,使同一组内不同图形元素保持一致的视觉编码。不同散点形状进一步增强了分组识别度,尤其适合在黑白打印、颜色区分较弱或组数较多的情况下辅助读图。
图中的横向虚线网格用于辅助判断纵坐标方向上的数值差异。网格线不参与统计分析,但能够帮助读者更直观地比较不同分组在相同数值范围内的分布位置。通过网格线可以更清晰地判断某一组数据是否整体上移、下移,或者是否存在较宽的波动范围。
图中的坐标轴和边框用于限定数据展示范围并增强图形结构感。横坐标刻度对应不同分组名称,纵坐标刻度对应具体数值范围。加粗的坐标轴边框可以提高图形在论文排版中的清晰度,使图片在缩放或印刷后仍保持较好的可读性。
图上方的显著性连接线表示指定分组之间进行了统计比较。连接线两端对应被比较的两个分组,连接线上方的星号表示统计显著性水平。通常情况下,* 表示 P < 0.05,** 表示 P < 0.01,*** 表示 P < 0.001,ns 表示差异不显著。显著性标记用于说明两组之间的差异是否具有统计学意义。需要注意的是,只有图中被连接线明确标注的组间关系才能进行显著性判断,未标注的组间关系不能仅凭视觉差异直接推断其是否显著。
二、例图结果解读:

如图所示,本研究采用散点图、箱线图和半小提琴图组合展示 CR、PF、G3、组4 和 G5 五组中该指标的分布特征。散点反映每个样本的原始观测值,箱线图反映组内数据的中位数和四分位范围,半小提琴图反映数据的密度分布。该图能够同时呈现样本个体差异、中心趋势、离散程度和整体分布形态,从而较全面地揭示不同分组间该指标的变化特征。
从原始散点分布来看,CR 组样本主要集中于低值区间,整体水平较低;PF 组样本点整体明显上移,较多样本分布在较高数值范围内,提示 PF 组该指标较 CR 组明显升高。箱线图结果进一步显示,PF 组中位数和四分位范围均高于 CR 组,说明 PF 组不仅个别样本升高,而是整体分布水平发生上移。半小提琴图也显示,PF 组主要密度区域位于较高数值区间,进一步支持 PF 组该指标整体升高的趋势。统计比较结果显示,CR 组与 PF 组之间差异达到极显著水平,提示 PF 组处理或状态可能显著提高该指标水平。
与 PF 组相比,G3 组散点分布整体下移,主要集中在中等数值区间。箱线图显示,G3 组中位数低于 PF 组,四分位范围也整体向低值方向移动,说明 G3 组该指标较 PF 组明显降低。半小提琴图结果同样显示,G3 组主要密度区域低于 PF 组,提示其整体分布发生下移。PF 组与 G3 组之间标注 ***,表明两组差异达到极显著水平。该结果说明,与 PF 组相比,G3 组该指标出现显著下降,提示 G3 对 PF 组升高的指标水平可能具有一定抑制、缓解或逆转作用。
组4 的散点主要分布在中高值范围内,箱线图中位数处于较高水平,半小提琴图主体也集中在中高值区间,说明组4整体水平相对较高,并与 PF 组存在一定重叠。该结果提示组4可能保持了较高的指标水平,但由于图中未显示组4与其他组之间的显著性比较,因此目前只能描述其分布趋势,不能直接判断其与 PF、G3 或 G5 之间是否存在统计学差异。
G5 组散点分布范围较宽,既包含较低数值样本,也包含部分较高数值样本。箱线图显示 G5 组中位数低于 PF 组和组4,接近或略低于 G3 组,提示 G5 组整体水平较 PF 组下降。半小提琴图显示 G5 组分布较分散,说明该组内部个体差异较明显。由于图中未标注 G5 与其他组之间的显著性结果,因此其差异仍需结合进一步统计检验进行确认。
总体而言,PF 组较 CR 组表现出明显升高趋势,且差异达到极显著水平;G3 组较 PF 组显著下降,提示 G3 可能对 PF 组升高的指标具有调节作用。组4整体处于中高水平,G5 组则表现出较大的组内差异和较低的中心水平。该组合图从原始样本点、统计概括和密度分布三个层面共同表明,不同分组之间该指标存在明显的分布差异,其中 CR、PF 和 G3 之间的变化趋势最为清晰。
三、代码运行和操作说明:
1.Python 安装
进入 Python 官网下载对应操作系统的 Python 安装包。建议选择较新的稳定版本,例如 Python 3.11、Python 3.12 或 Python 3.13。安装过程中需要勾选 Add Python to PATH,这样可以在命令行中直接调用 Python。具体安装教程可自行查找教程。
2. Python 编辑器安装与配置
为便于代码编写、调试和运行,可选择安装 Python 编辑器。常用编辑器包括 Visual Studio Code、PyCharm、Spyder 和 Jupyter Notebook。其中,Visual Studio Code 体积较小、插件丰富,适合科研绘图和数据分析代码编写。
以 Visual Studio Code 为例,安装完成后需要在扩展商店中安装以下插件:Python和Jupyter。安装插件后,打开 Python 脚本文件时,编辑器可以自动识别 Python 解释器,并支持代码高亮、自动补全、运行和调试等功能。
如果使用 PyCharm,则可以直接创建 Python 项目,并在项目设置中选择已安装的 Python 解释器。
3. 项目文件夹建立
为了保证代码、数据和输出结果便于管理,建议为每一次绘图或数据分析单独建立项目文件夹。将 Python 代码文件和 Excel 数据文件放在同一文件夹中,可以减少路径设置错误。如果数据文件不在同一目录下,则需要在代码中填写完整文件路径。
4. 第三方库安装
本研究绘图代码主要依赖 pandas、numpy、matplotlib、scipy 和 openpyxl 等 Python 第三方库。其中,pandas 用于读取和处理 Excel 数据,numpy 用于数值计算,matplotlib 用于图形绘制,scipy 用于统计检验,openpyxl 用于支持 Excel 文件读取。
在命令提示符或终端中进入项目文件夹后,运行以下命令安装所需库:
pip install pandas numpy matplotlib scipy openpyxl
如果安装速度较慢,可以使用国内镜像源,例如:
pip install pandas numpy matplotlib scipy openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple
5.数据文件准备
绘图前需要准备 Excel 数据文件。Excel 第一行为分组名称或指标名称,从第二行开始为具体数值。每一列对应一个分组或一个指标,程序会自动读取列名作为横坐标标签,并将该列下方的数值作为绘图数据。示例格式如下:

数据文件保存为 .xlsx 格式,并与 Python 代码文件放在同一文件夹内。找到INPUT_EXCEL_PATH = "示范数据.xlsx" 部分输入 Excel 文件路径。
在这里需要设置XY轴标题名称。

在这里设置每一个分组的颜色:

完整代码获取回复“云雨图”即可获得通道
代码运行问题可添加微信详细咨询:zhouysh001(八宝粥加油)