当前位置:首页>python>Python绘制多分组云雨图(附数据和代码)

Python绘制多分组云雨图(附数据和代码)

  • 2026-09-24 15:35:46
Python绘制多分组云雨图(附数据和代码)

©[悠悠智汇笔记] 版权所有

🙏请尊重劳动成果,守护每一份劳动心血;⚖️未经授权,不得以为任何方式转载、摘编或抄袭。🔄转载合作请后台联系授权,侵权必究。

本期和友友们分享Python绘制多分组云雨图,代码已经全部放在正文里了,需要示例数据的可以后台根据文章末尾的提示关键词获取哦。

当你面对多组数据对比,既担心只看平均值会被极端个案带偏,又觉得光看箱线图太枯燥、漏掉了分布细节时,这图就是救星。它巧妙地把数据拆解成左右两部分:左边的“雨滴”是原始散点,让你看清每一个真实样本的落点,谁是那个离群的“显眼包”根本藏不住;右边的“云朵”则是核密度曲线,一眼就能看出数据是像山峰一样集中,还是像波浪一样两极分化。中间再加个箱线图或小提琴图收腰,直接把中位数和四分位间距定死,信息量瞬间拉满。

这种图最适合放在那些需要“深挖差异”的场景里,比如对比不同产品的用户评分,或者看不同实验组的效果反馈。它不仅能告诉你哪组的表现更好,还能告诉你这组的表现为什么稳、那组的波动为什么大。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

import numpy as npimport pandas as pdimport plotly.graph_objects as go# ======================# 用户配置# ======================read_custom_data = True   # True=读取本地 data.csv;False=生成示例随机数据# 配色(线色与填充色一一对应)colors = ["#4f7942", "#c65f0a", "#a03530", "#5e4c8c", "#20648a"]fill_colors = ["#b0d1a6", "#f5c5a0", "#e7a39a", "#b1a5c9", "#a0d8ef"]# ======================# 读取 / 生成数据# ======================data_df = pd.read_csv("data.csv")# 防御:颜色数要与列数匹配if len(colors) < data_df.shape[1] or len(fill_colors) < data_df.shape[1]:    raise ValueError("颜色数量与数据列数量不匹配,请补齐 colors / fill_colors。")# ======================# 创建图表# ======================fig = go.Figure()x_data = list(data_df.columns)y_data = [data_df[col].values for col in data_df.columns]for xd, yd, cls, fcls in zip(x_data, y_data, colors, fill_colors):    # 半小提琴图(上半部,柔和一些)    fig.add_trace(        go.Violin(            y=yd,            name=xd,            points=False,            width=0.9,            fillcolor=cls,            line_color=cls,            opacity=0.2,            side="positive"        )    )    # 箱线图(叠加在同一类别上)    fig.add_trace(        go.Box(            y=yd,            name=xd,            boxpoints="all",            width=0.2,            whiskerwidth=0.4,            jitter=1,            pointpos=-2.0,            line=dict(color=cls, width=4),            fillcolor=fcls,            showlegend=False,            opacity=0.7,            marker_color=fcls,            marker_size=8,            marker_line_color=cls,            marker_line_width=2,            boxmean="sd",            notched=True        )    )# ======================# 布局# ======================fig.update_layout(    yaxis=dict(title="Y值"),    width=1200,    height=750,    showlegend=False,    template="plotly_white")fig.write_html("云雨图.html")fig.show()

🌿 今日的分享就到这里啦~如果这些内容有为你带来帮助,欢迎轻点右下角的【👍赞】和【👀在看】,也欢迎分享给更多需要的人,感恩~

猜您喜欢
往期精选▼

1. Python绘制主成分分析图(附数据和代码)

2. Python绘制顶刊同款散点拟合回归组合图(附数据和代码)

3. Python绘制绝美分组环形柱状图(附数据和代码

4. Python绘制绝美的分组径向柱状图(附数据和代

5. Python绘制Nature同款绝美雷达图(附数据和代码)

THE

END

数据怎么获取?

点击关注后,后台回复关键词:

2026_map_009可直接获取完整的示例数据和代码

如有帮助,您的点赞、评论、转发是我持续创作的动力~

#数据可视化#科研绘图 #云雨图 #Python #Matplotlib

最新文章

随机文章