如何绘制灵敏度指标图表?附指标数据及参考样图
参数灵敏度分析图表绘制需求
一、灵敏度指标参数
k = 1 p = 0.01018 alpha = 0.01381 beta1 = 0.65307 beta2 = 0.28410 zeta = -0.793134 gamma1 = -0.66854 gamma2 = -0.23908 eta = 0.01653
二、目标图表样式要求
目标为参数灵敏度柱状分析图,样式特征如下:
- 横轴为参数名称(k、p、alpha等)
- 纵轴为灵敏度指标数值,正数柱形向上展示、负数柱形向下展示,用不同颜色区分正负值
- 每个柱形顶部标注对应参数的具体灵敏度数值
三、Python实现代码(Matplotlib)
以下代码可直接运行生成符合要求的图表:
import matplotlib.pyplot as plt import numpy as np # 加载灵敏度参数数据 param_names = ['k', 'p', 'alpha', 'beta1', 'beta2', 'zeta', 'gamma1', 'gamma2', 'eta'] sensitivity_values = [1, 0.01018, 0.01381, 0.65307, 0.28410, -0.793134, -0.66854, -0.23908, 0.01653] # 定义柱形颜色:正数用蓝色,负数用红色 bar_colors = ['#1f77b4' if val >= 0 else '#ff4b5c' for val in sensitivity_values] # 创建绘图画布 plt.figure(figsize=(10, 6)) # 绘制柱状图 bars = plt.bar(param_names, sensitivity_values, color=bar_colors) # 为每个柱形添加数值标注 for bar in bars: value = bar.get_height() # 根据数值正负调整标注位置 y_pos = abs(value) + 0.02 plt.text(bar.get_x() + bar.get_width()/2, y_pos, f'{value:.4f}', ha='center', va='bottom' if value >= 0 else 'top') # 设置图表样式 plt.ylabel('灵敏度指标') plt.xlabel('模型参数') plt.title('参数灵敏度分析') plt.grid(axis='y', linestyle='--', alpha=0.7) # 自动调整布局 plt.tight_layout() plt.show()
代码说明
- 自动区分正负灵敏度数值的柱形颜色,直观展示参数影响方向
- 每个柱形顶部标注精确到四位小数的灵敏度数值,与参考图样式一致
- 加入网格线提升可读性,布局适配参数数量
内容的提问来源于stack exchange,提问作者Hew123
相关产品推荐
相关产品推荐

