楕円や長方形をmatplotlibで描画するマニアックな方法を紹介

今回はmatplotlibの中でもマニアックな解説動画です。円や長方形をmatplotlibで描画するというものです。もちろんタイトルにある通り、楕円も作成できます。

matplotlib.patchesの中に円や楕円、長方形など様々な図形を描画するクラスが用意されています。これを使って描画していこうと思います。詳細は以下のドキュメントを参照にしてください。本記事も以下のドキュメント通りに進めていきます。

参考 matplotlib.patchesMatplotlib

円を描画するサンプルコード

今回はオレンジ色に枠線を赤色で描画してみました。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as patches

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

c = patches.Circle(xy=(0, 0), radius=0.5, fc='orange', ec='red')
ax.add_patch(c)

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

楕円を描画するサンプルコード

続いては楕円ですが、基本的に円の時と変わりません。Ellipseを指定します。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as patches

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

e = patches.Ellipse(xy=(-0.25, 0), width=0.5, height=0.25, fc='lightgreen', ec='white')
ax.add_patch(e)

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

長方形を描画するサンプルコード

長方形はRectangleで作成することができます。枠線だけ黒色で指定して長方形を作成してみました。

Python
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.patches as patches

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

r = patches.Rectangle(xy=(0, 0), width=0.25, height=0.5, ec='black', fill=False)
ax.add_patch(r)

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

まとめ

公式サイトには他にもいくつも描画できる図形が載っているので、もっとより詳しく知りたい!という方はぜひ公式のmatplotlibのドキュメントを見てみてください!

円、楕円、長方形に関してはぜひやってみてください!