[matplotlib] 4. 犬(dog)

matplotlib

はじめに

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’を選択。

https://matplotlib.org/gallery/shapes_and_collections/fancybox_demo.html#sphx-glr-gallery-shapes-and-collections-fancybox-demo-py

できた図形は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’)とすることで、図形全体を表示できる。

参考

かわいいフリー素材集
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
https://matplotlib.org/gallery/shapes_and_collections/artist_reference.html#sphx-glr-gallery-shapes-and-collections-artist-reference-py

コメント

  1. […] [matplotlib] 4. 犬(dog)matplotlibの簡易的な図形描写モジュールpatchesにより、犬を描写する。sabopy.com2019.01.15 […]