『Python数値計算ノート』ではアフィリエイトプログラムを利用して商品を紹介しています。

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

【Matplotlib】多角形の描画

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

三角形

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

# MATPLOTLIB_PATCHES_TRIANGLE

# In[1]

import matplotlib.pyplot as plt
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

# In[1]

import matplotlib.pyplot as plt
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

# In[1]

import matplotlib.pyplot as plt
import matplotlib.patches as pat

fig = plt.figure(figsize=(5, 5))
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】正多角形の描画

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

正五角形

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

# MATPLOTLIB_PATCHES_POLYGON

# In[1]

import matplotlib.pyplot as plt
import matplotlib.patches as pat

fig = plt.figure(figsize=(5, 5))
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

# In[1]

import matplotlib.pyplot as plt
import matplotlib.patches as pat

fig = plt.figure(figsize=(5, 5))
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クラス 平行四辺形の描画

コメント