matplotlib使用contour绘制2σ置信椭圆时如何填充内部纯色
问题原因
plt.contour() 仅用于绘制等值线轮廓,默认不会对轮廓闭合的内部区域做填充,调整cmap参数只会改变轮廓线的配色,无法生成填充效果。
解决方案
要实现2σ置信椭圆内部纯色填充,直接使用Matplotlib的填充等值线接口plt.contourf()即可,具体操作:
- 确定填充区间:2σ置信边界对应的似然阈值为
level2,填充范围为所有落在2σ置信域内的似然值区间 - 调用
contourf绘制填充层,如果需要清晰的轮廓边线,在填充层之上叠加原contour绘制的边界线即可
参考代码:
# 似然值越大代表拟合优度越高的场景,填充≥level2的椭圆内部区域 plt.contourf( x, y, likelihood, levels=[level2, likelihood.max()], colors="#2c7fb8", # 指定填充纯色,支持十六进制色值、颜色名、RGB元组 alpha=0.6 # 可选:设置填充透明度,避免遮挡坐标轴、数据点或标注 ) # 可选:叠加绘制轮廓边线,强化边界显示效果 plt.contour( x, y, likelihood, levels=[level1, level2], colors="black", linewidths=1.2 )
特殊情况适配
如果你的计算用的是负对数似然(数值越小代表拟合优度越高),将填充区间反向设置即可:levels=[likelihood.min(), level2]
不需要给
contourf设置cmap参数,纯色填充直接指定colors参数即可生效,操作比调整色图更简单。
内容的提问来源于stack exchange,提问作者Ayan Mitra
相关产品推荐
相关产品推荐

