当前位置:首页>python>Python绘制高颜值云雨图

Python绘制高颜值云雨图

  • 2026-09-02 19:53:37
Python绘制高颜值云雨图

代码绘制成果展示

成果图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import numpy as npimport matplotlib.pyplot as pltimport pandas as pdfrom scipy import statsfrom itertools import combinations

第二部分

颜色库的设置以及配色方案的选择与提取
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: {        'colors': ['#FFD166', '#118AB2', '#EF476F'],        'fill': ['#FFE8B2', '#88C4D8', '#F7A3B7'],        'dark': ['#CCA751', '#0D6E8E', '#BF3858']    },    }}scheme_id = 60  #提取配色方案scheme = COLOR_SCHEMES.get(scheme_id, COLOR_SCHEMES[1])  #获取对应配色方案

第三部分

绘图函数:颜色提取与散点图的绘制
# =========================================================================================# ======================================3.绘图函数======================================# =========================================================================================def plot_raincloud(data, labels):    fig, ax = plt.subplots(figsize=(6, 5))    x_positions = np.arange(len(labels))  #X轴坐标点位置        ax.scatter(x_jitter,  #X                   d,  #Y                   s=90,  #大小                   color=colors[i],  #散点颜色                   edgecolor='white',  #边缘线颜色                   linewidth=1.2,  #边缘线的宽度                   zorder=3)  #图层

第四部分

绘图函数:箱线图的绘制
    #绘制箱线图    box = ax.boxplot(data,  #数据                     positions=x_positions,  #X                     widths=0.08,  #箱体宽度                     patch_artist=True,  #允许对箱体内部进行颜色填充修改                     showfliers=True,  #离群点                     #离群点的样式                     flierprops=dict(marker='o',  #形状                                     markerfacecolor='#222222',  #填充颜色                                     markeredgecolor='none',  #离群点边缘线                                     markersize=9))  #大小

第五部分

绘图函数:小提琴图绘制
    #小提琴图    violins = ax.violinplot(data,  #数据                            positions=x_positions + 0.15,  #位置                            showmeans=False,  #不显示均值横线                            showextrema=False,  #不显示极值线                            showmedians=False)  #不显示中位数横线    #遍历小提琴图    for i, pc in enumerate(violins['bodies']):        pc.set_facecolor(fill_colors[i])  #填充色        pc.set_alpha(1)  #透明度        pc.set_edgecolor('none')  #隐藏边框线        paths = pc.get_paths()[0]  #绘图路径信息        vertices = paths.vertices  #提取构成路径的所有顶点坐标数组        center = x_positions[i] + 0.15  #小提琴图的中心点X轴坐标        vertices[:, 0] = np.clip(vertices[:, 0], center, np.inf)  #截断左侧部分

第六部分

绘图函数:显著性检验与连线标记。
    # 利用排列组合生成不同数据组索引的两两配对列表,用于后续显著性检验计算    pairs = list(combinations(range(len(data)), 2))        ax.plot([x1, x1, x2, x2],  #四个顶点的X坐标                [y_top - line_height, y_top, y_top, y_top - line_height],  #Y坐标                lw=1.5,  #线宽                c='black')  #颜色        #文本        ax.text((x1 + x2) / 2,  #X                y_top + line_height * 0.2,  #y                sig_text,  #显著性标记                ha='center',  #水平                va='bottom',  #垂直                color='black',  #颜色                fontsize=12,  #大小                fontweight='bold')  #加粗

第七部分

绘图函数:图框和刻度线的设置
   #获取显著性横线的Y坐标高度    top_y = global_max + y_range * 0.08 + (y_range * 0.12 * (len(pairs) - 1))    #子图标号    ax.text(-0.5,  #X            top_y + y_range * 0.15,  #Y            'E',  #编号            fontsize=20,  #大小            fontweight='bold',  #加粗            va='center')  #垂直    #设置刻度线    ax.tick_params(axis='both',  #X轴和Y轴                   which='major',  #主刻度                   labelsize=12,  #大小                   width=1.5,  #宽度                   length=5)  #长度

第八部分

执行部分
# =========================================================================================# ======================================4.执行部分======================================# =========================================================================================if __name__ == '__main__':    excel_file_path = r'data.xlsx'  #原始数据路径    df = pd.read_excel(excel_file_path)  #读取数据    input_labels = df.columns.tolist()  #获取列名    input_data = [df[col].dropna().values for col in input_labels]  #数据    plot_raincloud(input_data, input_labels) 

如何应用到你自己的数据

1.选择要使用的配色方案:

scheme_id = 60  #提取配色方案

2.设置绘图结果的保存路径:

save_dir = r'云雨图'

3.设置原始数据文件的路径:

excel_file_path = r'data.xlsx'  #原始数据路径

推荐

期刊图片复现|Python绘制二维偏依赖PDP图
期刊复现|python绘制基于SHAP分析和GAM模型拟合的单特征依赖图
期刊图片复现|python绘制带有渐变颜色shap特征重要性组合图(条形图+蜂巢图)
期刊复现|用Python绘制SHAP特征重要性总览图、依赖图、双特征交互效应SHAP图,解锁XGBoost模型的终极奥秘
期刊图片复现|Python绘制shap重要性蜂巢图+单特征依赖图+交互效应强度气泡图+交互效应依赖图(回归+二分类+分类)

获取方式

公众号中的所有所有的免费代码都已经下架了,都并入到付费部分里了,付费合集代码和数据的购买通道已经开通,全部合集100元,后续将会持续更新,决定购买请后台私信我,注意只会分享练习数据和代码文件,不会提供答疑服务,代码文件中已经包含了每行代码的完整注释,购买前请确保真的需要!!!

最新文章

随机文章