Python
 Computer >> コンピューター >  >> プログラミング >> Python

matplotlibで点群から最大のポリゴン(多角形)を描画する方法

はじめに

matplotlibでは、複数の点(頂点)から構成される最大のポリゴン(多角形)を簡単に描画できます。matplotlib.patchesモジュールに含まれるPolygonクラスを使えば、頂点の座標リストを渡すだけで多角形を図に追加できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。

実装の手順

  1. matplotlib.patchesから「Polygon」をインポートします。
  2. 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
  3. ポリゴンの頂点となるデータポイントのリストを作成します。
  4. Polygonインスタンスを生成します。
  5. figureとサブプロットのセットを作成します。
  6. add_patch()メソッドでポリゴンパッチを軸に追加します。
  7. x軸・y軸の表示範囲を設定します。
  8. show()メソッドを使って図を表示します。

サンプルコード

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Polygon

# 図のサイズとレイアウトの設定
plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

# ポリゴンの頂点となるデータポイント
y = np.array([[1, 1], [0.5, 1.5], [2, 1], [1, 2], [2, 2]])

# Polygonインスタンスの作成(塗りつぶし色は黒)
p = Polygon(y, facecolor='k')

# figureとサブプロットの作成
fig, ax = plt.subplots()

# ポリゴンパッチを追加
ax.add_patch(p)

# 軸の表示範囲を設定
ax.set_xlim([0, 3])
ax.set_ylim([0, 3])

plt.show()

コードの解説

  • np.array([[1, 1], ...]): 各要素が (x, y) 座標を表す5つの頂点を定義しています。この点群が最大のポリゴンの輪郭になります。
  • Polygon(y, facecolor='k'): 頂点の配列を受け取り、黒('k'はblackを意味します)で塗りつぶされるポリゴンオブジェクトを生成します。
  • ax.add_patch(p): 作成したポリゴンをAxesオブジェクトに追加して描画対象にします。
  • set_xlim / set_ylim: 表示範囲を 0〜3 に設定することで、ポリゴン全体が収まるように調整しています。

出力結果

上記のコードを実行すると、指定した5つの頂点((1,1)、(0.5,1.5)、(2,1)、(1,2)、(2,2))を結んだ、黒く塗りつぶされた多角形が表示されます。

matplotlibで点群から最大のポリゴン(多角形)を描画する方法matplotlibで点群から最大のポリゴン(多角形)を描画する方法

まとめ

matplotlib.patchesのPolygonクラスを使うことで、点群からなる最大のポリゴンを数行のコードで描画できます。facecolorやedgecolorなどの引数を変更すれば、色や枠線のスタイルも自由にカスタマイズできるので、データの可視化にぜひ活用してください。

  1. Matplotlibで図のマージン(余白)を設定する方法をわかりやすく解説

    Matplotlibで作成するグラフの余白(マージン)を調整したい場合、margins()メソッドを使うことで簡単に設定できます。この記事では、実際のコード例とともに、マージン設定の基本的な手順を紹介します。margins()メソッドとはmargins()は、プロット領域の周囲にどれだけの余白を設けるかを指定するメソッドです。引数としてxやyに0〜1の範囲の値を渡すことで、軸方向ごとのマージン率を制御できます。例えばmargins(x=0, y=0)と指定すると、データ範囲ぴったりにプロットが表示され、余白がなくなります。実装手順figureサイズを設定し、サブプロット間および周囲のパディング

  2. MatplotlibでRectangle(長方形)に色を設定する方法

    Matplotlibで長方形(Rectangle)に色を設定するには、以下の手順に従います。手順figure() メソッドを使用して、新しい図(Figure)を作成するか、既存の図をアクティブにします。add_subplot() メソッドを使用して、サブプロット構成の一部として図に ~.axes.Axes を追加します。長方形は、アンカーポイント(基準座標)と幅・高さを指定することで定義できます。作成したRectangleパッチを add_patch() でプロットに追加します。xlim() および ylim() メソッドを使用して、x軸とy軸の表示範囲を設定します。図を表示するには、show