当前位置:首页>python>期刊图片复现|Python绘制高颜值双向棒棒糖图

期刊图片复现|Python绘制高颜值双向棒棒糖图

  • 2026-09-02 16:54:03
期刊图片复现|Python绘制高颜值双向棒棒糖图

代码绘制成果展示

论文:PSATluca is a Nomogram Predictor of Survival and Treatment of Lung Cancer Patients Based on Serum and Clinical Characters
论文原图
此图直观地展示了斯皮尔曼相关系数及其显著性。图表的底部X轴表示相关系数的大小,图中央有一条垂直的黑色粗基准线代表相关系数为0。左上角的图例明确了不同颜色代表不同组特征。同时在散点的外侧标注了特征名称以及显著性星号,从而保证了每一个数据点、文本标签和显著性标记都清晰易读且互不遮挡。
仿图
多种配色

代码解释

第一部分

库的导入以及字体设置
# =========================================================================================# ====================================== 1. 环境设置 =======================================# =========================================================================================import matplotlib.pyplot as pltimport pandas as pdimport numpy as np

第二部分

设置颜色库
# =========================================================================================# ======================================2.颜色库=======================================# =========================================================================================COLOR_SCHEMES = {    1: ["#4B4CB5", "#4FB99F", "#901A34", "#E27D60", "#85DCBA", "#E8A87C"],}

第三部分

绘图函数:颜色映射与画布创建
# =========================================================================================# ======================================3.绘图函数=======================================# =========================================================================================def plot_advanced_forest_chart(df, scheme_id, color_list):    unique_algos = df['Algo'].unique() #分组    color_map = {algo: color_list[i % len(color_list)] for i, algo in enumerate(unique_algos)} #映射颜色    #创建画布    fig, ax = plt.subplots(figsize=(8.4, 6.8))    y_positions = np.arange(len(df)) #生成Y轴位置

第四部分

绘图函数:数据遍历与图形绘制,绘制线条与数据点
    #遍历数据    for i, row in df.iterrows():        c_color = color_map[row['Algo']] #颜色        #上面点        ax.scatter(x, #x                   y, #y                   color=c_color, #颜色                   s=80, #大小                   edgecolors='white', #边框                   linewidth=0.5) #边框粗细

第五部分

绘图函数:文本与标记添加
      if x > 0:            #文本            ax.text(-0.02, #x                    y, #y                    row['CellType'], #文本                    ha='right', #水平                    va='center', #垂直                    color=c_color, #颜色                    fontsize=13) #字体大小            #标记            ax.text(x - 0.02, #x                    y, #y                    row['Sig'], #文本                    ha='center', # 水平                    va='center', # 垂直                    color='#1976D2', #颜色                    fontsize=13, #字体大小                    fontweight='bold') #加粗

第六部分

绘图函数:坐标轴和刻度设置,标题添加,网格线设置
    #x=0辅助线    ax.axvline(0, #x               color='black', #颜色               linewidth=2.5) #线宽    max_x = df['SpearmanR'].abs().max() #X轴绝对值最大值    ax.set_yticks(y_positions) #y轴刻度位置    ax.set_yticklabels([]) #去掉y轴标注    #遍历边框    for spine in ax.spines.values():        spine.set_color('#000000') #颜色        spine.set_linewidth(2.5) #线宽

第七部分

绘图函数:图例设置以及绘图结果保存
    ax.set_title("(a)", loc='left', fontsize=24, fontweight='bold') #子图编号    # 设图例内容    ax.legend(handles=legend_elements, #句柄              loc='best', #位置              frameon=False, #边框              fontsize=16, #字体大小              handletextpad=0.05) #间距

第八部分

执行部分
# =========================================================================================# ======================================4.执行部分=======================================# =========================================================================================if __name__ == "__main__":    df_real = pd.read_excel(r'data.xlsx') #读取数据        scheme_id = 1        selected_hex_colors = COLOR_SCHEMES[scheme_id]        print('正在绘制并保存方案:', scheme_id)        plot_advanced_forest_chart(df_real, scheme_id, selected_hex_colors)

如何应用到你自己的数据

1.设置原始数据的保存路径,执行部分:

df_real = pd.read_excel(r'data.xlsx') #读取数据

2.设置是否要进行批量绘图,执行部分:

plot_all = True

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

fig.savefig(fr'scheme_{scheme_id}.png', dpi=300, bbox_inches='tight')

推荐

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

获取方式

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

最新文章

随机文章