[matplotlib] 4. 犬(dog)

matplotlib

はじめに

この記事では、matplotlibのpatchesモジュールを使用して犬の図形を描画する方法について解説します。Pythonプログラミングで簡単に視覚的な犬の図を作成する手順と実装例を紹介します。

コード

コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)

解説

モジュールのインポート

matplotlibには図形を簡単に描画できる機能(patches、lines)があります。これらの機能を活用して犬の図形を描画していきます。

グラフの設定

figsizeは(width, height)で指定します。単位はインチです。figsizeを指定しない場合はrcParams[“figure.figsize”] =[6.4, 4.8]となります。

各パーツの作成

胴体(body)

胴体はFancyBboxPatchで作成します。Fancyboxは「化粧箱」という意味で、装飾された四角形を描画できます。

xyパラメータで左下の座標を指定し、widthで幅、heightで高さを設定します。 colorパラメータで色を指定でき、この例では’peru’色を使用しています。 boxstyleは四角形の形状を決定するもので、以下のような種類があります。ここでは’Round’を選択しています。

Drawing fancy boxes — Matplotlib 3.10.6 documentation

作成した図形は ax.add_patch(doutai) を使用して図中に追加しています。

耳(ears)

耳はくさび型(Wedge)で作成します。くさび形は円の中心から特定の角度範囲を切り取った図形で、扇型とも呼ばれます。

Wedgeパラメータでは、centerで中心位置を指定し、rで半径を設定し、theta1とtheta2で描画角度の範囲を決定します。

作成した耳の図形もax.add_patch()メソッドで図中に追加します。

顔(face)

顔は楕円型(Ellipse)で作成します。

Ellipseでは、xyで中心の座標を指定し、widthで幅、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)でグリッドが図形の前面に表示されないようにしています。また、plt.axis(‘scaled’)を設定することで、図形全体をバランスよく表示できます。

まとめ

matplotlibのpatchesモジュールを使った犬の図形描画方法について学びました。基本的な図形の組み合わせで視覚的に面白い表現ができることを確認しました。このテクニックは他の図形描画にも応用でき、Pythonでのデータビジュアライゼーションスキル向上に役立ちます。

参考

かわいいフリー素材集
いらすとやは季節のイベント・動物・子供などのかわいいイラストが沢山見つかるフリー素材サイトです。
Reference for Matplotlib artists — Matplotlib 3.10.6 documentation

コメント

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