不規則なデータグリッドのコンター図作成

PythonPythonBeginner
今すぐ練習

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

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

はじめに

この実験では、Matplotlibを使ってPythonで不規則な間隔のデータのコンター図を作成する方法を示します。コンター図は、等値線またはコンター線を使ってデータ値の2次元分布を示します。この例では、規則的なグリッド上に補間された不規則な間隔のデータのコンター図と、非構造化三角グリッドのためのtricontour図を比較します。

VMのヒント

VMの起動が完了したら、左上隅をクリックしてノートブックタブに切り替えて、Jupyter Notebookを使って練習しましょう。

時々、Jupyter Notebookが読み込み終了するまで数秒待つ必要があります。Jupyter Notebookの制限により、操作の検証は自動化できません。

学習中に問題に直面した場合は、Labbyにお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

必要なライブラリをインポートする

この例で必要なライブラリをインポートして始めます。matplotlib.pyplotnumpy です。また、データの三角分割に matplotlib.tri をインポートします。

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.tri as tri

ランダムなデータを生成する

NumPyの np.random.uniform メソッドを使ってランダムなデータを生成します。-2 から 2 の間の x と y の値を持つ npts = 200 個のデータポイントを生成します。また、関数 z = x * np.exp(-x**2 - y**2) を使って z 値を計算します。

np.random.seed(19680801)
npts = 200
x = np.random.uniform(-2, 2, npts)
y = np.random.uniform(-2, 2, npts)
z = x * np.exp(-x**2 - y**2)

グリッド上の補間

グリッド上での補間を通じて、不規則な間隔のデータ座標のコンター図を作成します。まず、np.linspace を使って x と y のグリッド値を作成します。次に、tri.LinearTriInterpolator を使って、(xi, yi) によって定義されるグリッド上でデータ (x, y) を線形補間します。通常の axes.Axes.contour を使って補間されたデータをプロットします。

ngridx = 100
ngridy = 200
xi = np.linspace(-2.1, 2.1, ngridx)
yi = np.linspace(-2.1, 2.1, ngridy)

triang = tri.Triangulation(x, y)
interpolator = tri.LinearTriInterpolator(triang, z)
Xi, Yi = np.meshgrid(xi, yi)
zi = interpolator(Xi, Yi)

fig, ax1 = plt.subplots()
cntr1 = ax1.contourf(xi, yi, zi, levels=14, cmap="RdBu_r")
ax1.plot(x, y, 'ko', ms=3)
ax1.set(xlim=(-2, 2), ylim=(-2, 2))
ax1.set_title('Contour Plot of Irregularly Spaced Data Interpolated on a Grid')
fig.colorbar(cntr1, ax=ax1)
plt.show()

トライコンター

無順序で不規則な間隔の座標を直接 axes.Axes.tricontour に供給することで、トライコンター図を使って同じデータをプロットします。

fig, ax2 = plt.subplots()
cntr2 = ax2.tricontourf(x, y, z, levels=14, cmap="RdBu_r")
ax2.plot(x, y, 'ko', ms=3)
ax2.set(xlim=(-2, 2), ylim=(-2, 2))
ax2.set_title('Tricontour Plot of Irregularly Spaced Data')
fig.colorbar(cntr2, ax=ax2)
plt.show()

まとめ

この実験では、Matplotlibを使ってPythonで不規則な間隔のデータのコンター図を作成する方法を示しました。規則的なグリッド上で補間された不規則な間隔のデータのコンター図と、非構造化三角グリッドのトライコンター図を比較しました。コンター図を作成するために axes.Axes.contouraxes.Axes.tricontour メソッドを使用しました。