
代码绘制成果展示










代码解释


第一部分

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

第二部分

# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {1: {'bg': '#F0F0F0', 'colors': ['#E94D36', '#00A3E0', '#008473', '#2A4583', '#FFA98E', '#808080']},}scheme_id = 60 #要使用的配色方案scheme_data = COLOR_SCHEMES.get(scheme_id, COLOR_SCHEMES[1]) #提取配色方案bg_color = scheme_data['bg'] #背景色scheme = scheme_data['colors'] #线条颜色

第三部分

# =========================================================================================# ======================================3.绘图函数======================================# =========================================================================================def plot_radar_chart(categories, data):angles += angles[:1] #将第一个角度追加到列表末尾,让绘制出来的折线图形在最后能够闭合#创建画布fig, ax = plt.subplots(figsize=(7, 7), subplot_kw=dict(polar=True))

第四部分

theta_bg = np.linspace(0, 2 * np.pi, 200) #生成角度点,用于绘制平滑的背景圆形填充区域#填充背景色ax.fill_between(theta_bg, #角度-0.2, #填充范围内部的起始1.0, #填充范围外侧color=bg_color, #背景色zorder=-1) #层ax.set_rgrids([0, 0.5, 1.0], labels=[]) #在指定的三个径向距离上设定同心圆网格线位置#网格线ax.yaxis.grid(True, #开启color='#CCCCCC', #颜色linestyle='--', #样式linewidth=1.5) #网格线的宽度

第五部分

#遍历每组数据的索引、标签名、数值for i, (stage, values) in enumerate(data.items()):#散点ax.plot(angles, #角度values_closed, #数值color=current_color, #颜色marker='o', #形状markersize=9, #大小linestyle='none') #不产生线条

第六部分

#图例ax.legend(loc='upper right', #位置bbox_to_anchor=(1.3, 1.1), #坐标fontsize=12, #大小frameon=False) #去掉图例自带的边框label_padding = 0.05 #给手动要添加的刻度文本一个额外的微调极径距离#子图编号fig.text(0.1, #x0.9, #y'a', #编号fontsize=24, #大小fontweight='bold') #加粗ax.tick_params(pad=20) #刻度参数

第七部分

# =========================================================================================# ======================================4.执行部分======================================# =========================================================================================if __name__ == '__main__':file_path = r'radar_data.xlsx' #原始数据路径df = pd.read_excel(file_path, index_col='Category') #读取categories = df.index.tolist() #分类组名data_dict = {col: df[col].tolist() for col in df.columns} #数据列表#绘图plot_radar_chart(categories, data_dict)

如何应用到你自己的数据

1.设置配色方案:
scheme_id = 60 #要使用的配色方案2.设置绘图结果的保存地址:
png_path = fr'radar_chart{scheme_id}.png'3.设置原始数据的路径:
file_path = r'radar_data.xlsx' 
推荐


获取方式
