[matplotlib] 15. 各軸の比率が等しい図

matplotlib

はじめに

axis(‘equal’)、axis(‘scaled’)などを用いてx軸とy軸の比率が等しい図を作成する。

コード

解説

モジュールのインポート

plt.rcParams[‘savefig.dpi’]=130で画像を保存する際の解像度(dpi)を130としている。

バージョン

図の生成

subplots()で2行2列の4この図を作成する。

左上の図(default)

patches.CirclePolygon()で円を多角形で近似した図形が描写できる。xyが中心の座標で、radiusが半径、resolutionで何角形にするかを設定する。ここでは、12角形としている。

axs[0, 0].add_patch(cp1)で図中に挿入。本来は正12角形であるはずなのに、歪んだ状態となっている。

右上の図(axis(‘equal’))

axs[0, 1].axis(‘equal’)とすることで、x軸とy軸のスケールを等しくしている。そのため、正12角形となっている。ただし、この場合、axs[0, 1].axis([0, 1, 0, 1])と表示範囲を設定しても反映されない。

軸範囲の設定を行いたい場合は、axis(‘scaled’)を用いる。

左下の図(axis(‘scaled’))

axs[1, 0].axis(‘scaled’)とすることで、軸範囲の設定が可能となる。
ここでは、axs[1, 0].axis([0, 2, 0, 2])とし、xが0〜2, yが0〜2の範囲で表示している。
ただし、図の形状は変わる。

右下の図(set_aspect(‘equal’, ‘box’))

axs[1, 1].set_aspect(‘equal’, ‘box’)とすることでも、図の形状が変わって、アスペクト比が揃う。

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

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

参考

matplotlibで座標軸を調整する - Qiita
自分で解説しようかと思いましたが、axisが便利すぎて特に言う事がないのでマニュアルの和訳を載せておきます。nbviewerに表示例を載せましたのでついてに見てください。matplotlib.p…

コメント