当前位置:首页>python>期刊图片复现|Python绘制径向折线图

期刊图片复现|Python绘制径向折线图

  • 2026-10-11 06:12:29
期刊图片复现|Python绘制径向折线图

代码绘制成果展示

论文:phenotyping chronic tinnitus  patients using self‑report  questionnaire data: cluster analysis  and visual comparison
此图直观地展示并比较不同患者亚群在各项多变量特征上的平均得分与总体差异。该图表是通过收集1228名慢性耳鸣患者完成的14份自评问卷中的64项特征数据,将数据进行Z-score标准化处理后,利用X-means聚类算法得出四个最佳患者表型(聚类),再将各个表型的特征平均值计算并映射到径向坐标系中绘制而成的。图上的每一个数据点代表某个特定表型在某一特征上经过标准化处理后的组内平均得分;在每一个内部特征类别中,属于同一聚类的数据点被线段依次连接起来形成折线;数据点和连线均按不同的聚类进行了颜色区分,以区分四种表型;最内圈排列的文字标明了9大特征类别;而最外围放射状的文字则是提取自问卷的具体特征名称。
论文原图
仿图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 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 = 1        selected_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 = True

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

plt.savefig(fr'scheme_{scheme_id}.svg', bbox_inches='tight')

推荐

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

获取方式

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

最新文章

随机文章