当前位置:首页>python>Python绘制高颜值3D饼图

Python绘制高颜值3D饼图

  • 2026-10-11 08:00:57
Python绘制高颜值3D饼图

代码绘制成果展示

绘制成果
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import matplotlib.pyplot as pltimport matplotlib.colors as mcolorsimport pandas as pdimport numpy as npimport matplotlibmatplotlib.rcParams['pdf.fonttype'] = 42matplotlib.rcParams['ps.fonttype'] = 42plt.rcParams['font.family'] = 'Times New Roman'plt.rcParams['mathtext.fontset'] = 'stix'

第二部分

颜色库
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================color_schemes = {    1: ['#1a3365', '#2c5ca7', '#4285c5', '#6baed6', '#9ecae1', '#c6dbef', '#deebf7', '#f7fbff', '#fdf2e3',        '#f4ccb3', '#f08e70', '#eb4d3d', '#df2d23', '#c81a1a', '#8b0d0d'],}

第三部分

绘图函数:创建画布,逐层绘制绘制出3D效果的饼图
# =========================================================================================# ======================================3.绘图函数=======================================# =========================================================================================def draw_3d_pie_chart():    #创建画布    fig, ax = plt.subplots(figsize=(12, 10), dpi=300)     #绘制当前深度的饼图层     wedges_side, _ = ax.pie(            sizes, #各个扇区的数据            colors=colors, #颜色            startangle=90, #饼图的起始绘制角度            radius=1 #半径    )    set_center((0, -i * step)) #扇区的中心    set_edgecolor('none') #边缘颜色    set_antialiased(True) #边缘平滑    set_zorder(depth_layers - i) #层

第四部分

绘图函数:绘制侧边分隔线增强立体感
    angles = [w.theta1 for w in wedges] #顶层所有扇区的起始角度    # 遍历每一个扇区的起始角度        ax.plot([x, x], #x起始结束                    [y, y - total_thickness - 0.7], #y起始结束                    color='white', #分隔线颜色                    linewidth=1.5, #线宽                    zorder=depth_layers + 0.5, #层                    clip_on=False) #允许超出绘图边界

第五部分

绘图函数:绘制文本标注
    #遍历扇区和文本    for i, (w, autotext) in enumerate(zip(wedges, autotexts)):        percent = sizes[i] / sum(sizes) * 100 #计算当前扇区实际占据的百分比数值        ang_rad = np.radians((w.theta1 + w.theta2) / 2) #计算扇区角度范围的中间夹角转换为弧度        autotext.set_position((x_text, y_text)) #添加文本        autotext.set_fontsize(11) #文本大小            ax.plot([x, x_line_end], #x                    [y, y_line_end], #y                    color='gray', #颜色                    linewidth=0.8, #粗细                    zorder=depth_layers + 2) #层

第六部分

绘图函数:绘制图例,调整布局,绘图结果保存
    ax.) #坐标系的纵横比    #图例    leg = ax.legend(        wedges, #图例形状        labels, #文字        loc="center left", #位置    )    #遍历图例文本    for text in leg.get_texts():        text.set_color('black') #颜色    # 设置标题    plt.title("HHH YSHJXLXXZTHDSMYCSKYA (3D)", #文本              fontsize=18, #大小              pad=40, #间距              loc='left') #位置

第七部分

执行部分:数据读取,批量绘图设置
# =========================================================================================# ======================================4.执行部分=======================================# =========================================================================================if __name__ == '__main__':    excel_filename = r"data.xlsx" #原始数据    df_data = pd.read_excel(excel_filename) #读取数据    labels = df_data['Chemical Compounds'].tolist() #类别    sizes = df_data['Composition (%)'].tolist() #数值    #设置是否批量绘图    plot_all = True    if plot_all:        for scheme_id in color_schemes.keys():            draw_3d_pie_chart(            )            print('正在绘制方案:',scheme_id)    else:        scheme_id = 1        draw_3d_pie_chart(        )

如何应用到你自己的数据

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

excel_filename = r"data.xlsx" #原始数据

2.提取类别、数值数据,执行部分:

labels = df_data['Chemical Compounds'].tolist() #类别sizes = df_data['Composition (%)'].tolist() #数值

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

plot_all = True

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

plt.savefig(fr"3D_Pie_{scheme_id}.png" , dpi=300, bbox_inches='tight')

推荐

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

获取方式

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

最新文章

随机文章