""" ============= Compound path ============= Make a compound path -- in this case two simple polygons, a rectangle and a triangle. Use ``CLOSEPOLY`` and ``MOVETO`` for the different parts of the compound path """ import matplotlib.pyplot as plt from matplotlib.patches import PathPatch from matplotlib.path import Path vertices = [] codes = [] codes = [Path.MOVETO] + [Path.LINETO]*3 + [Path.CLOSEPOLY] vertices = [(1, 1), (1, 2), (2, 2), (2, 1), (0, 0)] codes += [Path.MOVETO] + [Path.LINETO]*2 + [Path.CLOSEPOLY] vertices += [(4, 4), (5, 5), (5, 4), (0, 0)] path = Path(vertices, codes) pathpatch = PathPatch(path, facecolor='none', edgecolor='green') fig, ax = plt.subplots() ax.add_patch(pathpatch) ax.set_title('A compound path') ax.autoscale_view() plt.show() # %% # # .. admonition:: References # # The use of the following functions, methods, classes and modules is shown # in this example: # # - `matplotlib.path` # - `matplotlib.path.Path` # - `matplotlib.patches` # - `matplotlib.patches.PathPatch` # - `matplotlib.axes.Axes.add_patch` # - `matplotlib.axes.Axes.autoscale_view`