matplotlib中没有边缘的虚线矩形补丁

9
尝试在绘图中添加带有阴影图案的矩形补丁时,似乎无法将关键字参数edgecolor设置为“none”,同时指定阴影值。换句话说,我正在尝试添加一个带有图案填充但没有边缘的阴影矩形。这似乎不起作用。如果我也允许在矩形补丁周围绘制边缘,则只显示图案。如何实现所需的行为?
1个回答

17

您应该使用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()

你会得到这张图片: 在此输入图片描述


你能控制图案填充效果的线宽而不增加边框大小吗? - jkokorian
1
参数 linewidth 仅控制边框的宽度。根据 此答案 中的评论,无法控制阴影效果的线宽。 - carla
2
@jkokorian和其他到达这里的人: 在这里有一个通过rcParams控制阴影线宽度的可行解决方案: https://dev59.com/YFMI5IYBdhLWcg3wPpG4#56675011 - cjstevens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接