こんにちは!サラリーマンブロガーのみやしんです。
今日はpythonで図形描画をご紹介したいと思います。最近の私の仕事でpythonを使って図形を書く必要があった為、このブログへ残して皆さんのお役に立てたらと思います。

コードだけでなく、説明もしっかり載せて分かりやすくしたいと思いますので、是非ご参考にして頂けたらと思います!
図形描画のやり方
matplotlib.patchesを使って図形を描画
matplotlib.patchesを使って、四角や円などの様々な図形を描画できます。
まずはライブラリをインポートします。
import matplotlib.pyplot as plt
import matplotlib.patches as patches
fig = plt.figure()で何も描画されていない新しいウィンドウを描画
fig = plt.figure()
ax = plt.axes()で1つのグラフができる
ax = plt.axes()
円を描画。
円の中心 x=0, y=0、半径=0.5、円の内側の色=緑、円の枠の色=赤
fc = face color, ec = edge colorの意味
c = patches.Circle(xy=(0, 0), radius=0.5, fc='g', ec='r')
楕円を描画。幅=0.4、高さ=0.8
e = patches.Ellipse(xy=(-0.25, 0), width=0.4, height=0.8, fc='b', ec='y')
四角(矩形)描画。枠の色=#000000は黒色、fill=Falseで内側の色なし(透明)
xyは四角の左下角の座標
r = patches.Rectangle(xy=(0, 0), width=0.5, height=0.25, ec='#000000', fill=False)
色の設定例
- b:blue
- g:green
- r:red
- c:cyan
- m:magenta
- y:yellow
- k:black (bだとblueと被るため)
- w:white
add_patchを使ってグラフに円、楕円、四角を追加
ax.add_patch(c) ax.add_patch(e) ax.add_patch(r)
plt.axis()でグラフの目盛、グリッド、目盛に付けるラベル等を設定
‘scaled’でプロットボックスの寸法を変更して等しい尺度を設定
ax.set_aspect(‘equal’)を使ってプロットのアスペクト比を設定する方法も同じ効果
plt.axis('scaled')
描画をファイルに保存。ファイル名は自由(今回はshape_drawing.pngというファイル名で保存)
保存する際に拡張子を付けて保存可能(JPEG, TIFF, PNG)
plt.savefig('shape_drawing.png')
図形描画結果

スクリプト(コピペ用)
コピペ用に下記にスクリプトを掲載致します。
# ライブラリをインポート
import matplotlib.pyplot as plt
import matplotlib.patches as patches
# fig = plt.figure()で何も描画されていない新しいウィンドウを描画
fig = plt.figure()
# ax = plt.axes()で1つのグラフができる
ax = plt.axes()
# fc = face color, ec = edge colorの意味
# 円を描画
# 円の中心 x=0, y=0、半径=0.5、円の内側の色=緑、円の枠の色=赤
c = patches.Circle(xy=(0, 0), radius=0.5, fc='g', ec='r')
# 楕円を描画
# 幅=0.4、高さ=0.8
e = patches.Ellipse(xy=(-0.25, 0), width=0.4, height=0.8, fc='b', ec='y')
# 四角(矩形)描画
# 枠の色=#000000は黒色、fill=Falseで内側の色なし(透明)
# xyは四角の左下角の座標
r = patches.Rectangle(xy=(0, 0), width=0.5, height=0.25, ec='#000000', fill=False)
# 色の設定例
# b:blue
# g:green
# r:red
# c:cyan
# m:magenta
# y:yellow
# k:black bだとblueと被るため
# w:white
# add_patchを使ってグラフに円、楕円、四角を追加
ax.add_patch(c)
ax.add_patch(e)
ax.add_patch(r)
# plt.axis()でグラフの目盛、グリッド、目盛に付けるラベル等を設定。
# 'scaled'でプロットボックスの寸法を変更して等しい尺度を設定。
# ax.set_aspect('equal')を使ってプロットのアスペクト比を設定する方法も同じ効果。
plt.axis('scaled')
# 描画をファイルに保存。
# 保存する際に拡張子を付けて保存可能(JPEG, TIFF, PNG)
plt.savefig('shape_drawing.png')
Python、AI、機械学習について、初心者の方、プログラミングスクールに興味のある方、E資格を取得したい方、更に実践的なスキルを磨きたい方は下記の記事もご参考ください。
また、もっとmatplotlib.patchesの詳細を知りたい方は下記もご参照ください。
Python matplotlibで図形やグラフを描画したい方におススメの書籍はこちら!

図形の書き方については以上になります。
python初心者の方、少しずつで良いので焦らず地道に実力を積み上げていきましょう!
最後まで読んでくださりありがとうございました!




コメント