
代码绘制成果展示












代码解释


第一部分

# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import matplotlib.pyplot as pltimport numpy as npimport pandas as pdfrom scipy.interpolate import make_interp_splineimport matplotlib.ticker as mtickimport matplotlib.patheffects as path_effectsimport matplotlib.patches as patches

第二部分

# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {1: ['#4daf4a', '#984ea3', '#377eb8', '#f781bf', '#4169e1', '#00ced1', '#fdbf6f', '#ff7f00'],}SCHEME_ID = 60 #使用的颜色方案current_colors = COLOR_SCHEMES.get(SCHEME_ID, COLOR_SCHEMES[1]) #获取颜色

第三部分

# =========================================================================================# ===================================3.绘图函数==============================================# =========================================================================================def plot_accuracy_chart(x_labels, data, styles):x = np.arange(len(x_labels)) #根据标签数量生成X的数值索引数组#创建画布fig, ax = plt.subplots(figsize=(12, 7), dpi=100)#绘制曲线ax.plot(x_smooth, #Xy_smooth, #Ycolor=styles[name]['color'], #颜色linestyle=styles[name]['style'], #线型linewidth=4, # 设置线宽alpha=1, # 设置透明度path_effects=pe) #应用之前定义的阴影效果#绘制节点ax.scatter(x, #Xy_values, #Ycolor=styles[name]['color'], #散点颜色s=90, #散点大小zorder=5, #顺序edgecolor='white', #边缘颜色linewidth=1.5, #散点边缘宽度path_effects=pe) #应用阴影效果

第四部分

ax.set_xticks(x) #X轴的刻度位置#设置X轴的刻度标签文本及字体大小ax.set_xticklabels(x_labels)ax.set_yticks(np.arange(50, 100, 5)) #Y轴的刻度范围ax.tick_params(axis='both', labelsize=17) #刻度标签的字体大小plt.setp(ax.get_xticklabels() + ax.get_yticklabels(), fontweight='bold')#设置加粗ax.set_ylim(45, 95) #Y轴的显示范围ax.yaxis.set_major_formatter(mtick.PercentFormatter()) # 设置 Y 轴主刻度格式为百分比显示#去掉边框for spine in ax.spines.values():spine.set_visible(False)ax.tick_params(axis='both', which='both', length=0) #隐藏X、Y轴的刻度线ax.grid(False) #关闭网格线#构建线+点组合的图例句柄legend_handles = [] #用于存储自定义的图例句柄# 添加图例ax.legend(handles=legend_handles, #句柄labels=data.keys(), #名称loc='upper center', #位置bbox_to_anchor=(0.5, -0.08), #锚点位置ncol=8, #列数frameon=False, # 边框prop={'weight': 'bold', 'size': 13}, #字体加粗,大小columnspacing=1.2) #列间距

第五部分

# =========================================================================================# ======================================4.执行部分=======================================# =========================================================================================if __name__ == "__main__":file_path = r'data.xlsx' #数据文件的路径df = pd.read_excel(file_path, index_col=0) #读取文件x_labels = df.index.tolist() #X轴标签data = df.to_dict(orient='list') #转换为字典,列名作为键,列数据列表作为值model_names = list(data.keys()) # 获取所有名称/列名#调用绘图函数plot_accuracy_chart(x_labels, data, styles)

如何应用到你自己的数据

1.设置配色:
SCHEME_ID = 60 #使用的颜色方案2.设置绘图结果的保存地址:
fig.savefig(fr'plot{SCHEME_ID}.png', dpi=600)3.设置原始数据文件的地址:
file_path = r'data.xlsx' #数据文件的路径
推荐


获取方式
