はじめに
matplotlibの簡易的な図形描写モジュールpatchesにより犬を描写する。
コード
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)解説
モジュールのインポート
matplotlibには簡単な図形を描写する機能(patches, lines)がある。これらの機能を用いて犬を描く。
グラフの設定
figsizeは(width, height)で指定。単位はインチ。figsizeを指定しない場合はrcParams["figure.figsize"]
= [6.4, 4.8]
.となる。
各パーツの作成
胴体(body)
胴体はFancyBboxPatchで作成。Fancyboxは化粧箱という意味で、装飾された四角を描くことができる。
xyで左下の座標を指定し、wideで幅, heightで高さを指定する。
colorで色の設定ができ、’peru’色にしている。
boxstyleは四角の形であり、↓のような種類がある。ここでは、’Round’を選択。
できた図形はax.add_patch(doutai)で図中に反映させている。
耳(ears)
耳はくさび型(Wedge)で作成。くさび形とは円を中心から所定の角度の範囲で切り取った図形で、扇型とも呼ばれる。
Wedgeでは、中心をcenterで指定し、rを半径とし、theta1、theta2で描写したい範囲を決定する。
ax.add_patch()で図中に反映させる。
顔(face)
顔は楕円型(Ellipse)で作成。
Ellipseでは、xyで中心の座標を指定し、wideで幅, heightで高さを指定する。
ax.add_patch()で図中に反映させる。
口(mouth)
口は、円弧(Arc)で作成。円弧とは円の外周をある角度だけ切り取った形状のことで、Wedgeの外周部分にあたる。
Arcでは、中心をxyで指定し、widthで幅, heightで高さ、theta1、theta2で描写したい範囲を決定する。linewidthは線の太さのことで、ここでは3としている。
ax.add_patch()で図中に反映させる。
目(eyes)
目は円形(Circle)で作成。
Circleでは、xyで中心の座標を指定し、rで半径を指定する。colorは’k’=黒色としている。
ax.add_patch()で図中に反映させる。
鼻(nose)
鼻は顔と同様にEllipse(楕円形)で作成。色を’chocolate’としている。
尾(tail)
Line2Dで座標(x,y)を指定することで線を描くことができる。
Line2Dの場合は、ax.add_patch()ではなく、ax.add_line()で図中に反映させる。
足(legs)
anyo1, anyo2は前足で尾と同様に、Line2Dで作成している。
後ろ足は、四角(Rectangle)で作成。
Rectangleは、xyで左下の座標を指定し、widthで幅、 heightで高さを指定する。angleを指定することで四角を傾けることができる。ここでは、30.0°傾けている。
line2Dはax.add_line()で、rectangleはax.add_patch()で、図中に反映させる。
その他の設定
ax.grid()でグリッド線を表示して、ax.set_axisbelow(True)でgridが最前面にこないようにしている。plt.axis(‘scaled’)とすることで、図形全体を表示できる。
コメント
[…] [matplotlib] 4. 犬(dog)matplotlibの簡易的な図形描写モジュールpatchesにより、犬を描写する。sabopy.com2019.01.15 […]