
代码绘制成果展示











代码解释


第一部分

# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import matplotlib.pyplot as pltimport numpy as npimport pandas as pd

第二部分

# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {1: ['#0072B2', '#D55E00', '#E69F00', '#CC79A7'],}

第三部分

# =========================================================================================# ======================================3.绘图函数=======================================# =========================================================================================def plot_advanced_forest_chart(df, scheme_id):selected_hex_colors = COLOR_SCHEMES[scheme_id] # 配色方案# 创建画布fig, ax = plt.subplots(figsize=(14, 14), subplot_kw=dict(polar=True))arc_linewidth = 3.0 # 折线宽度tick_len_outer = 0.25 # 外侧刻度线长度

第四部分

#绘制基准线for cat, start_idx, end_idx in category_bounds:ax.plot(theta_cat, #弧度np.full_like(theta_cat, 0), #半径color='black', #颜色linewidth=3, #线宽linestyle='-') #实线ax.plot(theta_cat, #弧度np.full_like(theta_cat, -1.5), #半径color='black', #颜色linewidth=3, #线宽linestyle='-') #实线

第五部分

end_angle_last = angles[-1] #整图最后一个特征的角度start_angle_first = angles[0] + 2 * np.pi #首个特征的角度加上360度构成闭环跨度mid_angle_top = (end_angle_last + start_angle_first) / 2 #顶部缺口的中心角度#遍历刻度for r in r_ticks_gray:ax.plot(theta_top_gap, #弧度np.full_like(theta_top_gap, r), #半径color='#C0C0C0', #灰色linewidth=3, #线宽linestyle='-') #实线

第六部分

#遍历特征名称和对应角度for i, (angle, label) in enumerate(zip(angles, df['Feature'])):#外圈刻度线ax.plot([angle, angle], #角度[0, 0], #长度color='black', #颜色linewidth=tick_lw_outer, #线宽linestyle='-') #实线#内圈刻度线ax.plot([mid_angle, mid_angle], #角度[-1.5, -1.5 - tick_len_inner], #长color='black', # 颜色linewidth=tick_lw_inner, #线宽linestyle='-') #实线

第七部分

if __name__ == "__main__":df_real = pd.read_excel(r'\data.xlsx') # 读取数据features = df_real['Feature'].tolist() #特征列category_bounds = [] # 分类边界scheme_id = 1selected_hex_colors = COLOR_SCHEMES[scheme_id]print('正在绘制并保存方案:', scheme_id)plot_advanced_forest_chart(df_real, scheme_id)

如何应用到你自己的数据

1.设置原始数据的保存路径,执行部分:
df_real = pd.read_excel(r'data.xlsx') 2.提取特征列数据,执行部分:
features = df_real['Feature'].tolist() #特征列3.设置是否进行批量绘图,执行部分:
plot_all = True4.设置绘图结果的保存地址,绘图函数部分:
plt.savefig(fr'scheme_{scheme_id}.svg', bbox_inches='tight')
推荐


获取方式
