Matplotlibで図形(Shapes)を描画することは、データの視覚的表現を豊かにするための重要な方法の一つです。
Matplotlibには、さまざまなタイプの図形を描画するための機能が備わっており、これには直線、長方形、円、多角形、矢印などが含まれます。
これらの図形は、グラフに追加情報を提供するためや、特定のデータポイントやトレンドを強調するために使用されます。
以下にMatplotlibでよく使用される図形の種類とその描画方法について説明します。
直線(Lines)
直線は、グラフ上の2点を結ぶ最も基本的な図形です。
matplotlib.lines.Line2D クラスを使用して直線を描画できますが、通常は plt.plot() 関数で十分です。
例:
import matplotlib.pyplot as plt
plt.plot([x1, x2], [y1, y2]) # x1, y1 から x2, y2 までの直線
長方形(Rectangles)
長方形は、バーのチャートやヒストグラムのバーを描画するのによく使用されます。
matplotlib.patches.Rectangle クラスを使用して描画します。
例:
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig, ax = plt.subplots()
rect = patches.Rectangle((x, y), width, height, edgecolor='r', facecolor='none')
ax.add_patch(rect)
ここで、(x, y) は長方形の左下角の座標、width と height はそれぞれ長方形の幅と高さです。
円(Circles)
円は、データポイントを強調するのに役立ちます。
matplotlib.patches.Circle クラスを使用して描画します。
例:
circle = patches.Circle((x, y), radius, edgecolor='b', facecolor='none')
ax.add_patch(circle)
(x, y) は円の中心の座標、radius は円の半径です。
多角形(Polygons)
多角形は、複数の点を結ぶことで形成されます。
matplotlib.patches.Polygon クラスを使用して描画します。
例:
polygon = patches.Polygon([[x1, y1], [x2, y2], [x3, y3]], closed=True)
ax.add_patch(polygon)
ここで、各 [x, y] は多角形の頂点の座標です。
矢印(Arrows)

矢印は、特定の方向や動きを指し示すのに使用されます。
matplotlib.patches.FancyArrow クラスを使用して描画します。
例:
arrow = patches.FancyArrow(x, y, dx, dy, width=0.1)
ax.add_patch(arrow)
(x, y) は矢印の始点の座標、dx と dy は矢印の長さのx成分とy成分です。
グラフ内の図形の配置
これらの図形をグラフに配置するには、まず matplotlib.pyplot.subplots() でサブプロットを作成し、add_patch() メソッドを使用して図形をサブプロットに追加します。
これにより、図形を正確に配置し、グラフの他の要素との相互作用を制御できます。
まとめ

Matplotlibでの図形の描画は、データの視覚化を強化し、グラフに追加の文脈や情報を提供する効果的な方法です。
上記の例を通じて、基本的な図形の描画方法を理解し、これらを自分のグラフに適用することができます。
図形の追加は、データの解釈を促進し、視覚的アピールを高めるための強力なツールです。
以上、Matplotlibの図形についてでした。
最後までお読みいただき、ありがとうございました
