当前位置:首页>python>期刊图片复现|Python绘制绝美带误差棒和数值标记3D柱状图

期刊图片复现|Python绘制绝美带误差棒和数值标记3D柱状图

  • 2026-09-02 18:53:57
期刊图片复现|Python绘制绝美带误差棒和数值标记3D柱状图

代码绘制成果展示

论文:Sensory profile and the contribution of key aroma compounds in Jiang-flavor rounded-base Baijiu produced in the Chishui river basin 
论文原图
仿图
多种配色

代码解释

第一部分

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

第二部分

颜色库设置以及配色方案的选择与提取
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: ['#0055D4', '#00C4FF', '#A3D8FF', '#E6E6E6', '#FFB78C', '#FF7F50', '#D62728'],}color_scheme_id = 60 #要使用的配色方案colors = COLOR_SCHEMES[color_scheme_id] #提取配色方案

第三部分

绘图函数:数据准备与网格生成
# =========================================================================================# ======================================3.绘图函数============================================# =========================================================================================def plot_formatted_3d_bars(data, error_data, x_labels, y_labels, colors):    num_y, num_x = data.shape # 获取数据的行数和列数    X, Y = np.meshgrid(np.arange(num_x), np.arange(num_y)) #生成X和Y的二维坐标网格矩阵    color_list = [] #于存储每个柱体对应的颜色    #遍历数据的每一行,y    for i in range(num_y):        color_list.extend([colors[i]] * num_x) #将该分类对应的颜色复制并加到颜色列表中

第四部分

绘图函数:绘制3D柱状图
    # 创建画布    fig = plt.figure(figsize=(14, 8), dpi=150)    #绘图    ax.bar3d(X, #x             Y, #y             Z, #z             dx, #宽度             dy, #宽度             dz, #高度             color=color_list, #颜色             alpha=0.9, #透明度             shade=True) #阴影渲染

第五部分

绘图函数:绘制误差棒与数值文本
    #遍历数据矩阵    for i in range(num_y):        for j in range(num_x):            x_pos = j + dx_val / 2 #当前柱体顶部中心点的x坐标            y_pos = i + dy_val / 2 #y坐标            z_pos = data[i, j] #高度z            err = error_data[i, j] #获取对应的误差数值            #柱体上方文本            ax.text(x_pos, #x                    y_pos, #y                    z_pos + err + 1.5, #z                    str(int(z_pos)), #文本                    color='black', #颜色                    ha='center', #水平居中对齐                    va='bottom', #垂直底部对齐                    fontweight='bold', #加粗                    fontsize=10, #大小                    zorder=10) #层

第六部分

绘图函数:绘制坐标轴刻度与标签设置
    #设置x轴的刻度位置    ax.set_xticks(np.arange(num_x) + dx_val / 2)    #设置x轴标注    ax.set_xticklabels(x_labels, #文本                       rotation=45, #旋转                       ha='right', #水平                       va='center', #垂直                       fontsize=12) #大小    #设置Z轴标题    ax.set_zlabel('Species', #文本                  fontsize=16, #大小                  fontweight='bold', #加粗                  labelpad=15) #距离坐标轴距离

第七部分

绘图函数:图例设置以及绘图结果的保存
    #生成图例所需的颜色块和名称映射列表    legend_patches = [mpatches.Patch(color=colors[i], label=y_labels[i]) for i in range(num_y)]    #添加图例    ax.legend(handles=legend_patches, #句柄              loc='upper right', #位置              bbox_to_anchor=(0.9, 0.8), #精确位置              frameon=False, #移除边框线              fontsize=12) #图例文字大小    #添加子图编号    ax.text2D(0.02,0.75,"(a)",transform=ax.transAxes,fontsize=20,fontweight='bold')    plt.subplots_adjust(left=0.05, right=0.85, bottom=0.15, top=0.95) #调整边距

第八部分

执行部分,数据读取与绘图
# =========================================================================================# ======================================4.执行部分===========================================# =========================================================================================if __name__ == '__main__':    file_path = r"data.xlsx" #读取原始数据    df_data = pd.read_excel(file_path) #柱子数据    #绘图    plot_formatted_3d_bars(data, error_data, x_labels, y_labels, colors)

如何应用到你自己的数据

1.设置配色方案:

color_scheme_id = 60 #要使用的配色方案

2.设置绘图结果的保存地址:

plt.savefig(fr'3d_bar_chart{color_scheme_id}.png', dpi=300, bbox_inches='tight')

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

file_path = r"data.xlsx" #读取原始数据

推荐

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

获取方式

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

最新文章

随机文章