[Matplotlib] 長方形と正方形の描画

[Matplotlib] 長方形と正方形の描画

長方形と正方形の描画

 matplotlib.patches.Rectangle クラスから、長方形オブジェクトを作ることができます。

長方形の描画

 同じ形と大きさの長方形を 2 つ、回転角だけ変えて重ねて表示させてみます。

# MATPLOTLIB_PATCHES_RECTANGLE

# matplotlib.pyplotをインポート
import matplotlib.pyplot as plt

# matplotlib.patchesをインポート
import matplotlib.patches as pat

# Figureを作成
fig = plt.figure(figsize=(5, 5))

# FigureにAxes(サブプロット)を追加
ax = fig.add_subplot(111)

# patches.Rectangleクラスのインスタンスを作成

# 左下の座標(0.3, 0.3), 横幅0.5, 高さ0.25
# 回転角0°, 塗り潰し色blue, 透明度0.5
rec1 = pat.Rectangle(xy = (0.3, 0.3), width = 0.5, height = 0.25,
                   angle = 0, color = "blue", alpha = 0.5)

# 左下の座標(0.3, 0.3), 横幅0.5, 高さ0.25
# 回転角45°, 塗り潰し色red, 透明度0.5
rec2 = pat.Rectangle(xy = (0.3, 0.3), width = 0.5, height = 0.25,
                   angle = 45, color = "red", alpha = 0.5)

# Axesに長方形を追加
ax.add_patch(rec1)
ax.add_patch(rec2)

 Python Matplotlib.patches.Rectangle 長方形の描画

 patches.Rectangle の引数 xy には、長方形の左下隅の座標を設定します。x 座標と y 座標はそれぞれ Axes の横幅、縦幅を 1 とする相対的な数値で指定します。angle には水平軸から反時計回りに測った回転角を渡します。alpha は塗り潰しの透明度を決める引数です。
 

正方形の描画

 matplotlib.patches.Rectangle クラスで width と height に同じ値を渡せば、正方形を作ることができます。

# MATPLOTLIB_PATCHES_SQUARE

# matplotlib.pyplotをインポート
import matplotlib.pyplot as plt

# matplotlib.patchesをインポート
import matplotlib.patches as pat

# Figureを作成
fig = plt.figure(figsize=(5, 5))

# FigureにAxes(サブプロット)を追加
ax = fig.add_subplot(111)

# patches.Rectangleクラスのインスタンスを作成
# 左下の座標(0.2, 0.2), 横幅0.6, 高さ0.6
# 回転角0°, 塗り潰し色darkblue
rec = pat.Rectangle(xy = (0.2, 0.2), width = 0.6, height = 0.6,
                   angle = 0, color = "darkblue")

# Axesに正方形を追加
ax.add_patch(rec)

 Python Matplotlib.patches.Rectangle 正方形の描画

 上のサンプルコードでは、横幅と高さを 0.6、塗り潰しの色を darkblue に指定しています。