みなさん、こんにちは、
みむすたーです。
本記事では、
matplotlibで四角、円、矢印などの図形を描画したいけど、どうすれば良いかわからない
という疑問にお答えします。
それでは、いきましょう。
もくじ
matplotlibで図形の描画
サンプルプログラム
from matplotlib import pyplot
from matplotlib import patches
import math
fig = pyplot.figure()
patchlist = [
patches.Arc((1,1),1,1),
patches.Arrow(0.5,0.5,1,1),
patches.Circle((1,1),1),
patches.Ellipse((1,1),1,0.5),
patches.Polygon([(0.5,0.5),(1,1.5),(1.5,0.5)]),
patches.Rectangle((0.5,0.5),1,1)
]
column = row = math.ceil(math.sqrt(len(patchlist)))
for i, patch in enumerate(patchlist):
ax = fig.add_subplot(column,row,i + 1)
ax.add_patch(patch)
ax.set_ylim(0,2)
ax.set_xlim(0,2)
pyplot.show()
サンプルプログラムの説明
matplotlibで図形を描画する場合は、patchesクラスを使用します。
from matplotlib import patchesは、
patchesクラスを使用できるようにするための処理です。
patchlist = […]は、
様々な図形をリストに代入しています。
・円周(Arc)
・矢印(Arrow)
・円(Circle)
・楕円(Ellipse)
・多角形(Polygon) ※今回は三角形を描画しました。
・四角形(Rectangle)
column = row = math.ceil(math.sqrt(len(patchlist)))は、
図形の数に応じて、subplotで描画する領域の縦横の数を決めています。
図形の数が1なら1で、2〜4なら2、5〜9なら3というようしています。
for i, patch in enumerate(patchlist):以降は、
subplot領域を用意して、それぞれの図形を表示しています。
図形の追加は、ax.add_patchで行っています。
サンプルプログラムの動作
上記のサンプルプログラムでは、以下のような図形をサブプロットごとに表示します。
コメント