
代码绘制成果展示












代码解释


第一部分

# =========================================================================================# ====================================== 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, # x0.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, # xy_off, # ylabel, # 文本ha='right', # 水平va='center', # 垂直color=color, # 颜色fontsize=14, # 大小fontweight='bold') # 加粗

第八部分

# =========================================================================================# ====================================== 4. 执行函数 =======================================# =========================================================================================if __name__ == '__main__':df_real = pd.read_excel(r'data.xlsx') # 读取数据scheme_id = 1print('正在绘制并保存方案:', 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')
推荐


获取方式
