多角形 (三角形、ひし形、平行四辺形、五角形)

多角形 (三角形、ひし形、平行四辺形、五角形)

多角形の描画

 matplotlib.patches.Polygon クラスから様々な多角形オブジェクトを作ることができます。引数に頂点の座標を指定して、それらを線で結ぶことで図形が描かれます。

三角形の描画

 3 つの頂点を指定して二等辺三角形を描いてみます。

# MATPLOTLIB_PATCHES_TRIANGLE

# 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)

# 3つの頂点を指定して三角形を描画
# 塗り潰しはライトブルー、縁はダークレッド
p = pat.Polygon(xy = [(0.2, 0.2), (0.8, 0.2), (0.5, 0.8)],
                fc = "lightblue", ec = "darkred")

# Axesに多角形を追加
ax.add_patch(p)

 matplotlib.patches.Polygonクラス 二等辺三角形の描画

 頂点の座標 xy は [] で括って配列形式で指定します。上のサンプルコードでは (0.2, 0.2), (0.8, 0.2), (0.5, 0.8) の 3 点を指定しています。座標数値は Axes の幅を 1 とする相対座標です (Axes の左下隅が (0, 0), 右上隅が (1, 1) となります) 。色指定に用いる引数 fc , ec は それぞれ facecolor, edgecolor の略記です。
 

ひし形(菱形)の描画

 4 つの頂点を指定してひし形(菱形)を描画させるサンプルコードです。

# MATPLOTLIB_PATCHES_RHOMBUS

# 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)

# 4つの頂点を指定してひし形を描画
# 塗り潰しはライム、縁の色はブラック
p = pat.Polygon(xy = [(0.2, 0.5), (0.5, 0.1), (0.8, 0.5), (0.5, 0.9)],
                fc = "lime", ec = "black")

# Axesに多角形を追加
ax.add_patch(p)

 matplotlib.patches.Polygonクラス 菱形の描画
 

平行四辺形の描画

 4 つの頂点を指定して平行四辺形を描画するサンプルコードです。

# MATPLOTLIB_PATCHES_PARALLELOGRAM

# 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)

# 4つの頂点を指定して平行四辺形を描画
# 塗り潰しはライム、縁の色はブラック
p = pat.Polygon(xy = [(0.2, 0.2), (0.6, 0.2), (0.8, 0.8), (0.4, 0.8)],
                fc = "pink", ec = "black")

# Axesに多角形を追加
ax.add_patch(p)

 matplotlib.patches.Polygonクラス 平行四辺形を描画
 

正多角形の描画

 matplotlib.patches.CirclePolygon クラスを使うと、指定した半径の円に内接する正多角形を描くことができます。

正五角形の描画

 半径 0.4 の円に内接する正五角形を描画するサンプルコードです。

# MATPLOTLIB_PATCHES_POLYGON

# 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)

# 正五角形の描画
# 中心座標(0.5, 0.5), 半径0.4
# 塗り潰しはイエロー、縁の色はブラック
cp = pat.CirclePolygon(xy = (0.5, 0.5), radius = 0.4,
                       resolution = 5, fc = "yellow", ec = "black")

# Axesに正多角形を追加
ax.add_patch(cp)

 matplotlib.patches.CirclePolygonクラス 正五角形の描画

 引数 resolution で辺の数を指定します (正五角形なら resolution = 5, 正十二角形なら resolution = 12 です)。
 

正三角形の描画

 正三角形は matplotlib.patches.CirclePolygon クラスで resolution=3 を指定することで描画できます。

# MATPLOTLIB_PATCHES_EQUILATERAL_TRIANGLE

# 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)

# 正三角形の描画
# 中心座標(0.5, 0.4), 半径0.4
# 塗り潰しはレッド、縁の色はブラック
cp = pat.CirclePolygon(xy = (0.5, 0.4), radius = 0.4,
                       resolution = 3, fc = "red", ec = "black")

# Axesに多角形を追加
ax.add_patch(cp)

 matplotlib.patches.CirclePolygonクラス 平行四辺形の描画