[matplotlibの使い方] 5. 等高線、塗りつぶし等高線プロット

matplotlib
スポンサーリンク

matplotlibの等高線プロットの設定方法

matplotlibで作成した等高線グラフの色、線の設定について

matplotlibの等高線グラフは、3次元構造をもつデータをプロットするときに有用である。ここでは、その詳細について説明する。

モジュールのインポート

データの生成

X, Y は xとyをnp.meshgrid(x, y)により、格子状にしたデータであり、3次元データをプロットする場合はmeshgridデータを用いる必要がある。Z はそのX,Yを用いて、関数f(X, Y)で作成した。

等高線のプロット

ax.contour(X,Y,Z)で等高線が表示される。
負の値は破線、正の値は実線で表示される。
ax.set_aspect(‘equal’,’box’)でxとy軸のアスペクト比を同じにして、図の形状を四角にしている。

色を用いた等高線プロット

cmapを指定することで、色を使って等高線を表現することができる。
cmap=’PuOr’の場合、Pu紫が正の値。Or(オレンジ)が負の値となる。

Zの後の10はデータを等高線により、10個に分けるというの意味。

cmap=’PuOr_r’の場合、PuOrとは、逆になり、Pu(紫)が負の値。Or(オレンジ)が正の値となる。

塗りつぶし等高線

plt.contourf()で塗りつぶし等高線ができる。

imshow()によるデータの表示

離散的なデータの場合、等高線は不向きのため、imshowを用いる必要がある。
imshowを用いる場合は、extent()でデータを表示する範囲を設定する。 これは、[xmin, xmax, ymin, ymax]の順となっている。
imshowのデフォルトの原点は左上なので、origin=’lower’で原点を左下に持ってくる。

imshow()データに等高線を重ねて表示。

等高線とimshowを重ねて表示することもできる。imshowの透明度をalpha=0.4とすることで透明にし、等高線を見えるようにしている。

plt.clabel(contours, inline=True, fontsize=10)とすることで、等高線上にデータの値を表示することができる。

参考

Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習

コメント