当前位置:首页>python>Python绘制渐变色堆叠柱状图

Python绘制渐变色堆叠柱状图

  • 2026-10-11 11:59:45
Python绘制渐变色堆叠柱状图

代码绘制成果展示

此图主要用于分析和对比不同分组的数据分布特征。X轴代表数据大小,Y轴代表频数。三种颜色的柱状图分别代表三个不同分组的数据,每层柱状图内部均采用了从下至上的由白到彩色的垂直渐变效果,且各层之间通过白色边框清晰分隔,直观展示了各个区间内不同来组数据的累加频数。直方图之上的平滑线是针对所有数据计算出的正态分布拟合曲线。
结果图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import numpy as npimport pandas as pdimport matplotlib.pyplot as plt

第二部分

设置颜色库
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: ['#E74C3C', '#3B4A6B', '#1C8C85'],}

第三部分

绘图函数:数据预处理与颜色分配
# =========================================================================================# ======================================3.绘图函数=======================================# =========================================================================================def plot_residual_stacked_histogram(df_real, scheme_id):    res_list = [df_real[df_real['Source'] == src]['Residual'].values for src in sources]    selected_hex_colors = COLOR_SCHEMES[scheme_id]  # 获取配色方案    colors_list = selected_hex_colors[:len(sources)]  #分配颜色

第四部分

绘图函数:创建画布与坐标轴格式化
    # 创建画布    fig, ax = plt.subplots(figsize=(7.2, 6))    # 绘制子图编号    ax.text(0.85,  # x            0.9,  # y            '(a)',  # 文本            transform=ax.transAxes,  # 坐标系            fontsize=30,  # 字号            fontweight='bold',  # 加粗            va='bottom',  # 垂直            ha='left')  # 水平    # 设置刻度标注字体大小    for label in ax.get_xticklabels() + ax.get_yticklabels():        label.set_fontsize(11)

第五部分

绘图函数:绘制渐变色直方图
    # 绘制直方图    n, bins_out, patches = ax.hist(res_list,  # 数据                                   bins=bins,  # 分箱边界                                   stacked=True,  # 堆叠                                   edgecolor='white',  # 边缘线色                                   linewidth=0,  # 边缘线宽                                   rwidth=0.95)  # 宽度    # 遍历不同类别    for i, container in enumerate(patches):

第六部分

绘图函数:设置轴范围,绘制标题,创建图例
    ax.set_xlim(-res_limit, res_limit)  # X轴范围    ax.set_ylim(0, 95)  # Y轴范围    # x轴标题    ax.set_xlabel(r'Residual ($\mu\epsilon$)',  # 文本                  fontsize=14,  # 字体大小                  fontweight='bold')  # 加粗    ax.legend(handles=legend_patches + [line_normal],  # 句柄              loc='upper left',  # 位置              prop={'size': 11},  # 字体属性              edgecolor='gray',  # 边框颜色              framealpha=1)  # 背景透明度

第七部分

执行部分
# =========================================================================================# ======================================4.执行部分=======================================# =========================================================================================if __name__ == "__main__":    df_data = pd.read_excel(r'data.xlsx')  # 读取数据    scheme_id = 1    print(f'正在绘制并保存方案:{scheme_id}')    plot_residual_stacked_histogram(df_data, scheme_id)    print(f">>> 绘制完成,图片已保存至指定目录。")

如何应用到你自己的数据

1.设置原始数据的保存路径,执行部分:

df_data = pd.read_excel(r'data.xlsx')  # 读取数据

2.设置是否进行批量绘图,执行部分:

plot_all = True

3.设置读取数据,绘图函数部分:

sources = df_real['Source'].unique().tolist()residuals = df_real['Residual'].values  # 获取全体数据

4.设置绘图结果的保存地址,绘图函数部分:

plt.savefig(fr'Scheme_{scheme_id}.svg', bbox_inches='tight')

推荐

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

获取方式

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

最新文章

随机文章