我注意到两个相邻区域重叠,所以在中间出现一条恼人的线条。 我试过“capstyle ='butt'”,我过去常常避免在线之间重叠,但是这里没有做到这一点。
这是一个最小的例子:
import matplotlib.pylab as plt
ax = plt.subplot(111)
ax.axvspan(0, 0.5, color = 'red', alpha = 0.13, capstyle = 'butt')
ax.axvspan(0.5, 1, color = 'blue', alpha = 0.13, capstyle = 'butt')
plt.show()
答案 0 :(得分:6)
你遇到的问题不是由于线帽,因为axvspan绘制了一个多边形。问题是这个多边形默认情况下有一个给定线宽的边框(我想是一个像素)。
因此,要获得没有" border"的区域,请将线宽(string
)设置为零:
lw
答案 1 :(得分:4)
而不是color
,请在facecolor
内使用axvspan
。 @heltonbiker的解决方案效果很好,它摆脱了边框的宽度。但是,至少在我正在使用的matplotlib版本中,2.0.0只使用facecolor
不会绘制边框。
import matplotlib.pylab as plt
fig,ax = plt.subplots()
ax.axvspan(0, 0.5, facecolor = 'red', alpha = 0.13)
ax.axvspan(0.5, 1, facecolor = 'blue', alpha = 0.13)
plt.show()