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

Mat*_*hem 7 patch matplotlib hatchstyle

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

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

car*_*rla 13

您应该使用linewidth必须设置为零的参数.

示例(基于您的其他问题的答案):

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()
Run Code Online (Sandbox Code Playgroud)

你会得到这个图像: 在此输入图像描述

  • @jkokorian 和其他到达这里的人:这里有一个通过 rcParams 控制填充效果线宽的可行解决方案:/sf/answers/3967250801/ (2认同)