You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让matplotlib绘图的阴影区域完全不透明?

解决Matplotlib遮盖层无法完全覆盖折线的问题
  • 问题原因:plt.axhspan()默认的渲染层级(zorder)低于折线图(plt.plot()),导致绿色线条会穿透遮盖层显示。
  • 解决方法:给axhspan设置更高的zorder参数,让遮盖层渲染在折线图上方。

修改后的代码:

import matplotlib.pyplot as plt
import numpy as np

plt.plot(np.linspace(0,2.0 * np.pi,30),np.sin(np.linspace(0,2.0 * np.pi,30)),color='green')
# 设置zorder为更高值,确保遮盖层在折线上方
plt.axhspan(-1.5, 1.5, xmin=0.66, xmax=1, color='gray', zorder=3)
plt.xlim(0,2.0 * np.pi)
plt.ylim(-1.5,1.5)
plt.show()

也可以用plt.fill_between()实现相同效果,同样需要指定zorder:

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0,2.0 * np.pi,30)
plt.plot(x, np.sin(x), color='green')
# 计算对应x轴的遮盖区间
x_start = 0.66 * 2 * np.pi
x_end = 2 * np.pi
plt.fill_between([x_start, x_end], -1.5, 1.5, color='gray', zorder=3)
plt.xlim(0,2.0 * np.pi)
plt.ylim(-1.5,1.5)
plt.show()

内容的提问来源于stack exchange,提问作者Joe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 18:22:07