【发布时间】:2013-08-26 10:01:23
【问题描述】:
当尝试将带有阴影图案的矩形补丁添加到绘图时,似乎不可能在同时指定阴影值时将关键字参数 edgecolor 设置为“无”。 换句话说,我正在尝试添加一个没有边缘但带有图案填充的阴影矩形。这似乎不起作用。仅当我还允许在矩形补丁周围绘制边缘时,才会显示该模式。
对如何实现所需行为有任何帮助吗?
【问题讨论】:
标签: matplotlib patch hatchstyle
当尝试将带有阴影图案的矩形补丁添加到绘图时,似乎不可能在同时指定阴影值时将关键字参数 edgecolor 设置为“无”。 换句话说,我正在尝试添加一个没有边缘但带有图案填充的阴影矩形。这似乎不起作用。仅当我还允许在矩形补丁周围绘制边缘时,才会显示该模式。
对如何实现所需行为有任何帮助吗?
【问题讨论】:
标签: matplotlib patch hatchstyle
您应该使用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()
你会得到这个图像:
【讨论】:
linewidth 只控制边框的宽度。根据this answer中的cmets,无法控制影线效果的线宽。