当前位置:首页>python>期刊图片复现|Python绘制带有悬浮效果的平滑折线图

期刊图片复现|Python绘制带有悬浮效果的平滑折线图

  • 2026-08-27 02:55:30
期刊图片复现|Python绘制带有悬浮效果的平滑折线图

代码绘制成果展示

论文:Towards improved identification of residential land vulnerable to  abandonment in rural China: A case study using an integration approach of machine learning techniques
论文原图
仿图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 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])  #获取颜色

第三部分

绘图函数:函数定义,接收X轴标签、数据字典和样式配置。创建画布,它给线条和点添加一个半透明的黑色阴影,从而产生悬浮的3D视觉效果。对原始的离散数据点进行三次样条插值,从而绘制出圆滑的曲线。绘制平滑后的曲线,在原始数据点的位置绘制节点。
# =========================================================================================# ===================================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,  #X                y_smooth,  #Y                color=styles[name]['color'],  #颜色                linestyle=styles[name]['style'],  #线型                linewidth=4,  # 设置线宽                alpha=1,  # 设置透明度                path_effects=pe)  #应用之前定义的阴影效果        #绘制节点        ax.scatter(x,  #X                   y_values,  #Y                   color=styles[name]['color'],  #散点颜色                   s=90,  #散点大小                   zorder=5,  #顺序                   edgecolor='white',  #边缘颜色                   linewidth=1.5,  #散点边缘宽度                   path_effects=pe)  #应用阴影效果

第四部分

绘图函数:设置 X ,Y 轴范围,刻度线、刻度标注。设置边框,手动创建图例并添加。同时在最外围添加上一个大边框。
    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'  #数据文件的路径

推荐

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

获取方式

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

最新文章

随机文章