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')
source: matplotlib_patches.py
出力結果

色の設定
塗りつぶし色はfacecolor
またはfc
、辺の色はedgecolor
またはec
で設定する。
以下の通り、アルファベット一文字で指定できる。
- b: blue
- g: green
- r: red
- c: cyan
- m: magenta
- y: yellow
- k: black
- w: white
colors — Matplotlib 2.0.2.post2256+gfc6a7ba documentation
#000000
や#eeefff
のようにhexで指定することもできる。
塗りつぶしなしの場合は、fill=False
とする。