Заштрихованные прямоугольные пятна без ребер в 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()

Вы получите это изображение: введите описание изображения здесь

Другие вопросы по тегам