如何让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
相关产品推荐
相关产品推荐

