Заштрихованные прямоугольные пятна без ребер в matplotlib
При попытке добавить прямоугольный патч с шаблоном штриховки к графику кажется, что невозможно задать для ключевого аргумента edgecolor значение none, когда также указывается значение штриховки. Другими словами, я пытаюсь добавить заштрихованный прямоугольник БЕЗ края, но с заливкой узором. Это не похоже на работу. Шаблон появляется только в том случае, если я также позволю нарисовать ребро вокруг прямоугольного пятна.
Любая помощь о том, как добиться желаемого поведения?
1 ответ
Решение
Вы должны использовать 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()
Вы получите это изображение: