# 三种校正
industry_raw_sig = industry_p_arr < 0.05 # 未校正显著判断
industry_bonf_rej, _, _, _ = multipletests(industry_p_arr, alpha=0.05, method='bonferroni') # Bonferroni
industry_bh_rej, _, _, _ = multipletests(industry_p_arr, alpha=0.05, method='fdr_bh') # BH
fig, axes = plt.subplots(1, 3, figsize=(15, 5)) # 1行3列子图
method_configs = [ # 三种方法的配置
('未校正 (α=0.05)', industry_raw_sig, int(sum(industry_raw_sig))), # 未校正配置
('Bonferroni', industry_bonf_rej, int(sum(industry_bonf_rej))), # Bonferroni配置
('BH (q=0.05)', industry_bh_rej, int(sum(industry_bh_rej))) # BH配置
] # 三种方法
for ax_idx, (method_name, reject_mask, count) in enumerate(method_configs): # 遍历三种方法
colors = ['#E3120B' if r else 'gray' for r in reject_mask] # 显著=红色,不显著=灰色
axes[ax_idx].barh(range(len(industry_p_arr)), -np.log10(industry_p_arr), color=colors, alpha=0.7) # 水平柱状图
axes[ax_idx].set_title(f'{method_name}(显著: {count})') # 标题含显著数量
axes[ax_idx].set_xlabel('$-\\log_{10}(p)$') # x轴标签
plt.tight_layout() # 自动调整间距
plt.show() # 显示图表