複合パスの作成

Beginner

This tutorial is from open-source community. Access the source code

はじめに

このチュートリアルでは、Python の Matplotlib を使って複合パスを作成する方法を学びます。複合パスは、単純なパスのコレクションで、複雑な形状を作成するために使用できます。ここでは、2 つの単純な多角形、すなわち四角形と三角形を組み合わせて複合パスを作成します。

VM のヒント

VM の起動が完了したら、左上隅をクリックして ノートブック タブに切り替え、Jupyter Notebook を使って練習しましょう。

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリのインポート

まずは必要なライブラリをインポートします。グラフを作成するために matplotlib.pyplot、パッチを作成するために matplotlib.patches、パスを作成するために matplotlib.path.Path、配列を作成するために numpy が必要です。

import matplotlib.pyplot as plt
from matplotlib.patches import PathPatch
from matplotlib.path import Path
import numpy as np

頂点とコードの作成

複合パスに結合したい 2 つの多角形の頂点とコードを作成します。多角形の始点にカーソルを移動するには Path.MOVETO、始点から次の点までの線を作成するには Path.LINETO、多角形を閉じるには Path.CLOSEPOLY を使用します。

vertices = []
codes = []

## 最初の多角形 - 四角形
codes = [Path.MOVETO] + [Path.LINETO]*3 + [Path.CLOSEPOLY]
vertices = [(1, 1), (1, 2), (2, 2), (2, 1), (0, 0)]

## 2 番目の多角形 - 三角形
codes += [Path.MOVETO] + [Path.LINETO]*2 + [Path.CLOSEPOLY]
vertices += [(4, 4), (5, 5), (5, 4), (0, 0)]

パスの作成

前のステップで作成した頂点とコードから、Path を使ってパスを作成します。

path = Path(vertices, codes)

パスパッチの作成

前のステップで作成したパスから PathPatch を作成します。facecolor'none' に、edgecolor'green' に設定します。

pathpatch = PathPatch(path, facecolor='none', edgecolor='green')

グラフの作成

グラフを作成し、そのグラフに PathPatch を追加します。グラフのタイトルを 'A Compound Path' に設定します。

fig, ax = plt.subplots()
ax.add_patch(pathpatch)
ax.set_title('A Compound Path')

ax.autoscale_view()

plt.show()

まとめ

このチュートリアルでは、Python の Matplotlib を使って複合パスを作成する方法を学びました。四角形と三角形の 2 つの単純な多角形を組み合わせて複合パスを作成しました。頂点とコードからパスを作成するために Path を使い、パスからパッチを作成するために PathPatch を使いました。最後に、パッチをグラフに追加して複合パスを表示しました。