Matplotlibで円や長方形などの図形を描画

Posted: | Tags: Python, Matplotlib

概要

Pythonのグラフ描画ライブラリmatplotlibで円や長方形などの図形を描く。

matplotlib.patchesの中に円や楕円、長方形など様々な図形を描画するクラスが用意されている。詳細は以下のドキュメントを参照。

設定したpatchesを、add_patchで追加していく。

なお、Pythonの画像処理ライブラリPillow(PIL)を使って図形を描画することもできる。特にグラフと組み合わせたりする必要がなければ、Pillowのほうがシンプルで楽かもしれない。

コード例

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

fig = plt.figure()
ax = plt.axes()

# fc = face color, ec = edge color
c = patches.Circle(xy=(0, 0), radius=0.5, fc='g', ec='r')
e = patches.Ellipse(xy=(-0.25, 0), width=0.5, height=0.25, fc='b', ec='y')
r = patches.Rectangle(xy=(0, 0), width=0.25, height=0.5, ec='#000000', fill=False)
ax.add_patch(c)
ax.add_patch(e)
ax.add_patch(r)

plt.axis('scaled')
ax.set_aspect('equal')

plt.savefig('data/dst/matplotlib_patches.png')

出力結果

Matplotlib patches

色の設定

塗りつぶし色はfacecolorまたはfc、辺の色はedgecolorまたはecで設定する。

以下の通り、アルファベット一文字で指定できる。

#000000#eeefffのようにhexで指定することもできる。

塗りつぶしなしの場合は、fill=Falseとする。

関連カテゴリー

関連記事