コントアーフと対数カラースケール

PythonPythonBeginner
今すぐ練習

This tutorial is from open-source community. Access the source code

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、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関数を使って対数カラースケール付きの塗りつぶし等高線プロットを作成する方法を学びました。また、ラベル、タイトルを追加し、カラーマップを変更することでプロットをカスタマイズする方法も学びました。