我想在图表上添加一个矩形。通过我找到的所有文档,默认情况下矩形应该是不透明的,透明度由 alpha 参数控制。但是,即使 alpha = 1,我也无法让矩形显示为不透明。我是否做错了什么,或者我还需要了解图形与补丁交互的方式吗?
这是一个玩具示例:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as patches
from pylab import *
x = np.arange(10)
y = x
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x, y)
rect = patches.Rectangle( ( 2,3 ), 2, 2, alpha = 1, ec = "gray", fc = "CornflowerBlue", visible = True)
ax.add_patch(rect)
plt.show()
来自文档:
在轴内,顺序
各种线条、标记、文本、
收藏品等出现已确定
由
matplotlib.artist.Artist.set_zorder()
财产。默认顺序是
补丁、线条、文本、集合
线和补丁集合
与普通人处于同一水平
分别是线和补丁。
因此默认情况下,补丁将绘制在线条下方。您可以通过指定矩形的 zorder 来更改顺序:
# note alpha is None and visible is True by default
rect = patches.Rectangle((2, 3), 2, 2, ec="gray", fc="CornflowerBlue", zorder=10)
您可以通过更改来检查绘图上线条的 zorderax.plot(x, y)
to lines = ax.plot(x, y)
并添加一行新代码:print lines[0].zorder
。当我这样做时,zorder
直线为 2。因此,矩形需要一个zorder > 2
以模糊该线。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)