Liquidsのロゴ Liquids

0

等高線【matplotlib】

matplotlib

matplotlibで等高線を描くには、matplotlib.pyplot.contour()を使用します。
matplotlib.pyplot.contour()には3つの引数を与えます。
第1引数は、x座標
第2引数は、y座標
第3引数は、xy座標における値
です。

また、第1引数、第2引数で格子状のxy座標を表す必要があり、それぞれ2次元になります。
これらの値はnp.meshgrid()を使用することで容易に生成が可能です。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(-2, 5, 0.01)
y = np.arange(-3, 2, 0.01)
X, Y = np.meshgrid(x, y)

Z = np.exp(-(X**2 + Y**2)) 

plt.contour(X, Y, Z)
plt.show()

levels引数で表示する等高線の本数を指定できます。

cn = plt.contour(X, Y, Z, levels=2)
plt.show()

cn = plt.contour(X, Y, Z, levels=4)
plt.show()

表示する等高線の高さを指定するには、levelsに表示したい値のリストを与えます。

cn = plt.contour(X, Y, Z, levels=[0.3, 0.5, 0.7])
plt.clabel(cn) # 指定できていることがわかりやすいようにラベルをつける

matplotlib.pyplot.contour()の返り値を、matplotlib.pyplot.clabel()の引数として与えると、等高線の高さを表示できます。

cn = plt.contour(X, Y, Z)
plt.clabel(cn)

cmp引数を利用して等高線で利用されるカラーマップを変更できます。

plt.contour(X, Y, Z, cmap='magma')

等高線の色がどの程度の値であるかを示すカラーバーを表示するには、matplotlib.pyplot.colorbar()を使用します。
引数には、matplotlib.pyplot.contour()の返り値を与えます。

cn = plt.contour(X, Y, Z)
plt.colorbar(cn)

塗りつぶされた等高線を描くには、matplotlib.pyplot.contour()ではなく、matplotlib.pyplot.contourf()を使用します。

plt.contourf(X, Y, Z)

Liquidsのロゴ Liquids

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?