在matplotlib中没有边缘的阴影矩形块

时间:2013-08-23 11:07:30

标签: matplotlib patch hatchstyle

当尝试将具有阴影图案的矩形贴片添加到绘图时,似乎在指定填充值时无法将关键字参数edgecolor设置为“none”。 换句话说,我试图添加一个没有边缘但带有图案填充的阴影矩形。这似乎不起作用。如果我还允许在矩形块周围绘制边缘,则仅显示该模式。

有关如何实现所需行为的任​​何帮助?

1 个答案:

答案 0 :(得分:13)

您应该使用linewidth参数,该参数必须设置为零。

示例(基于your other question's answer):

import matplotlib.pyplot as plt
import matplotlib.patches as patches
import numpy as np

fig = plt.figure()
ax = fig.add_subplot(111)

# generate some data:
x,y = np.meshgrid(np.linspace(0,1),np.linspace(0,1))
z = np.ma.masked_array(x**2-y**2,mask=y>-x+1)

# plot your masked array
ax.contourf(z)

# plot a patch
p = patches.Rectangle((20,20), 20, 20, linewidth=0, fill=None, hatch='///')
ax.add_patch(p)
plt.show()

你会得到这个图片: enter image description here