#python #matplotlib
#python #matplotlib
Вопрос:
В приведенном ниже коде я строю линию, затем я строю непрозрачный патч (альфа = 1) над ним. Я бы ожидал, что часть строки, которая покрыта патчем, будет скрыта, но она видна так, как если бы линия была нанесена после патча. Как это изменить, чтобы линия не просвечивала?
Код был адаптирован из этого примера matplotlib
import matplotlib.path as mpath
import matplotlib.patches as mpatches
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
Path = mpath.Path
path_data = [
(Path.MOVETO, (1.58, -2.57)),
(Path.CURVE4, (0.35, -1.1)),
(Path.CURVE4, (-1.75, 2.0)),
(Path.CURVE4, (0.375, 2.0)),
(Path.LINETO, (0.85, 1.15)),
(Path.CURVE4, (2.2, 3.2)),
(Path.CURVE4, (3, 0.05)),
(Path.CURVE4, (2.0, -0.5)),
(Path.CLOSEPOLY, (1.58, -2.57)),
]
codes, verts = zip(*path_data)
path = mpath.Path(verts, codes)
# plot control points and connecting lines
x, y = zip(*path.vertices)
y2 = [_y-1 for _y in y]
line, = ax.plot(x, y2, 'go-')
patch = mpatches.PathPatch(path, facecolor='r', alpha=1)
ax.add_patch(patch)
ax.grid()
ax.axis('equal')
plt.show()