はじめに
この実験では、Matplotlib のcontourf関数を使って対数カラースケール付きの塗りつぶし等高線プロットを作成する方法を学びます。正負の値を持つデータセットを使ってこの機能を示します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習します。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートする
次のライブラリをインポートする必要があります。
- プロットと可視化を作成するための
matplotlib.pyplot - データセットを生成するための
numpy
import matplotlib.pyplot as plt
import numpy as np
データセットを生成する
numpyを使って正負の値を持つデータセットを生成します。
N = 100
x = np.linspace(-3.0, 3.0, N)
y = np.linspace(-2.0, 2.0, N)
X, Y = np.meshgrid(x, y)
## 突き出たピークを持つ低い盛り上がり。
## z/カラー軸を対数スケールにする必要があります。そうすることで盛り上がりとピークの両方が見えます。
## 線形スケールではピークのみが表示されます。
Z1 = np.exp(-X**2 - Y**2)
Z2 = np.exp(-(X * 10)**2 - (Y * 10)**2)
z = Z1 + 50 * Z2
## いくつかの負の値を入れる(左下隅)。これにより対数に関するトラブルが発生します。
z[:5, :5] = -1
## 以下は必ずしも必須ではありませんが、警告を消します。
## 警告を見るにはコメントアウトしてください。
z = ma.masked_where(z <= 0, z)
プロットを作成する
対数カラースケール付きの塗りつぶし等高線プロットを作成するためにcontourf関数を使います。
fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.PuBu_r)
cbar = fig.colorbar(cs)
plt.show()
プロットをカスタマイズする
ラベル、タイトルを追加し、カラーマップを変更することでプロットをカスタマイズできます。
fig, ax = plt.subplots()
cs = ax.contourf(X, Y, z, locator=ticker.LogLocator(), cmap=cm.coolwarm)
ax.set_title('Contourf Plot with Log Color Scale')
ax.set_xlabel('X-axis')
ax.set_ylabel('Y-axis')
cbar = fig.colorbar(cs)
plt.show()
まとめ
この実験では、Matplotlib のcontourf関数を使って対数カラースケール付きの塗りつぶし等高線プロットを作成する方法を学びました。また、ラベル、タイトルを追加し、カラーマップを変更することでプロットをカスタマイズする方法も学びました。