Matplotlib contourf绘图如何显示-100和100端点级别值?
解决contourf绘图缺失端点-100和100的问题
第一步:验证数据极值
先确认你的数据var中确实包含≤-100或≥100的数值,运行以下代码检查:print("数据最小值:", var.min()) print("数据最大值:", var.max())如果数据极值在(-100, 100)范围内,端点对应的颜色块自然不会出现——因为没有数据落在该区间。
第二步:调整区间与显示参数
若数据确实包含-100或100,尝试以下方案:- 扩展levels边界
略微扩大levels范围,规避浮点数精度导致的端点匹配问题:import numpy as np import matplotlib.pyplot as plt levels = np.linspace(-100.1, 100.1, 21) plt.contourf(var, levels=levels) plt.colorbar(ticks=np.linspace(-100, 100, 21)) # 强制显示所有刻度 plt.show() - 设置extend参数
通过extend='both'让颜色条显示端点对应的延伸色,确保极值被识别:levels = np.linspace(-100, 100, 21) plt.contourf(var, levels=levels, extend='both') plt.colorbar(ticks=levels) plt.show()
- 扩展levels边界
第三步:强制闭合区间
若上述方法无效,手动生成整数步长的levels,确保端点被明确包含:levels = np.arange(-100, 101, 10) # 生成[-100, -90, ..., 90, 100]共21个点 plt.contourf(var, levels=levels) plt.colorbar(ticks=levels) plt.show()
内容的提问来源于stack exchange,提问作者Joss Fres
相关产品推荐
相关产品推荐

