当前位置:首页>python>期刊图片复现|Python绘制UpSet变体图

期刊图片复现|Python绘制UpSet变体图

  • 2026-09-11 19:59:15
期刊图片复现|Python绘制UpSet变体图

代码绘制成果展示

论文:Pan-cancer analysis of tissue-plasma genomic concordance reveals enhanced concordance with liver metastasis and plasma clonality as predictor of poorer overall survival
论文原图
该UpSet变体图详细展示了参与研究的肿瘤患者ctDNA样本中体细胞突变情况的患者水平一致性分布特征。图表根据变异类型的有无(由底部矩阵的勾号和叉号表示),将患者精准划分为三大类:Discordant组(蓝色柱状图),其中420名患者仅检测到组织特异性变异,7名患者仅有血浆特异性变异,另有76名患者同时具有血浆和组织特异性变异但不存在共有变异;Complete concordant组(橙色柱状图),包含8名在两种样本中均未检测出任何变异的患者以及42名仅检测到共有变异的患者;Partially concordant组(米黄色柱状图),该组表现出变异的多样性,包括99名同时具有血浆特异性变异和共有变异的患者,209名同时具有组织特异性变异和共有变异的患者,以及人数最多的一组250名同时携带血浆特异性、组织特异性和共有变异三种突变类型的患者。
仿图
多种配色

代码解释

第一部分

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

第二部分

设置颜色库
# =========================================================================================# ====================================== 2. 配色方案 =======================================# =========================================================================================COLOR_SCHEMES = {    1: ['#1E7595', '#DE6344', '#FCE2C4', '#4DAF4A', '#984EA3', '#FFFF33'],}

第三部分

绘图函数:数据准备与颜色提取
# =========================================================================================# ====================================== 3. 绘图函数 =======================================# =========================================================================================def plot_advanced_forest_chart(df, scheme_id):    values = df['Values'].tolist()  # 获取数值    # 提取数据    # 提取颜色    color_bar_blue = selected_hex_colors[0]    color_bar_red = selected_hex_colors[1]    color_bar_beige = selected_hex_colors[2]

第四部分

绘图函数:创建画布与绘制柱状图
    # 创建画布    fig, ax = plt.subplots(figsize=(8.5, 6))    # 调整布局    fig.subplots_adjust(bottom=0.25,  # 下                        left=0.35,  # 左                        right=0.95,  # 右                        top=0.85)  # 上

第五部分

绘图函数:坐标轴与边框设置
    # y轴范围    ax.set_ylim(0, y_max * 1.25)    # x轴范围    # 设置y轴刻度线    ax.tick_params(axis='y',  # 轴                   labelsize=12,  # 大小                   length=5,  # 长                   width=2)  # 宽    ax.set_xticks([])  # x轴刻度

第六部分

绘图函数:顶部标题及分类文本标注
    # 子图编号    fig.text(0.02,  # x             0.92,  # y             'b',  # 文本             fontsize=26,  # 字体大小             fontweight='bold')  # 加粗    # 主标题    ax.text(np.mean(x),  # x轴居中            y_max * 1.25,  # y轴动态位置            'Patient-Level Concordance',  # 文本            fontsize=18,  # 字体大小            ha='center',  # 水平            va='bottom')  # 垂直    # 图顶部需要展示的分类文本    text_labels = ['Disconcordant', 'Complete\nconcordant', 'Partially concordant']    text_colors = [color_bar_blue, color_bar_red, color_bar_beige]  # 对应颜色    #划分数据块    chunk_sizes = [3, 2, 3]    start_idx = 0#分块开始索引

第七部分

绘图函数:绘制底部点阵图
    # 行标题    row_labels = [        'With plasma-specific variants',        'With tissue-specific variants',        'With shared variants'    ]    row_colors = ['#EF7857', '#176E94', '#4D4D4D']  # 行标题颜色    # 遍历行    for label, color, y_off in zip(row_labels, row_colors, y_offsets):        ax.text(-0.7,  # x                y_off,  # y                label,  # 文本                ha='right',  # 水平                va='center',  # 垂直                color=color,  # 颜色                fontsize=14,  # 大小                fontweight='bold')  # 加粗

第八部分

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

如何应用到你自己的数据

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

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

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

plot_all = True  # 是否批量绘图

3.设置要提取的数据,绘图函数部分:

matrix = [    df['Plasma_specific'].tolist(),df['Tissue_specific'].tolist(),df['Shared'].tolist()]

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

plt.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元,后续将会持续更新,决定购买请后台私信我,注意只会分享练习数据和代码文件,不会提供答疑服务,代码文件中已经包含了每行代码的完整注释,购买前请确保真的需要!!!

最新文章

随机文章