Matplotlibの等高線プロットは、二次元平面上で三次元データを視覚化するための強力なツールです。この記事では、matplotlibの等高線プロットの世界に深く入り込み、そのさまざまな機能、カスタマイズオプション、実用的なアプリケーションを探ります。データサイエンティスト、研究者、または視覚化愛好者であっても、このガイドはmatplotlibを使用して魅力的な等高線プロットを作成する技術を習得するのに役立ちます。
Matplotlib 等高線 おすすめ記事
Matplotlibの等高線プロットの理解
Matplotlibの等高線プロットは、三次元データを二次元平面上で表現するために使用されます。これらは、等しい値の点を結ぶ等高線で構成されており、地形図に似ています。これらのプロットは、温度分布、圧力勾配、または標高マップなどのスカラー場を視覚化するのに特に便利です。
基本的なmatplotlibの等高線プロットを作成する例から始めましょう:
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 等高線プロットを作成
plt.figure(figsize=(10, 8))
contour = plt.contour(X, Y, Z)
plt.colorbar(contour)
plt.title("基本的なMatplotlib等高線プロット - how2matplotlib.com")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.show()
出力:
この例では、numpyを使用してサンプルデータセットを生成し、matplotlibを使用して基本的な等高線プロットを作成します。plt.contour()
関数は等高線プロットを作成するための鍵であり、この記事を通じてそのさまざまなパラメータとオプションを探ります。
等高線レベルのカスタマイズ
matplotlibの等高線プロットの最も重要な側面の1つは、等高線のレベルをカスタマイズできる能力です。デフォルトでは、matplotlibは自動的に等高線のレベルの数と値を選択しますが、視覚化をよりコントロールするために手動で指定することもできます。
カスタム等高線レベルを設定する方法の例は次のとおりです:
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# カスタムレベルを使用して等高線プロットを作成
plt.figure(figsize=(10, 8))
levels = [-0.75, -0.5, -0.25, 0, 0.25, 0.5, 0.75]
contour = plt.contour(X, Y, Z, levels=levels)
plt.colorbar(contour)
plt.title("Matplotlib等高線プロット - カスタムレベル - how2matplotlib.com")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.show()
出力:
この例では、plt.contour()
関数のlevels
パラメータを使用してカスタム等高線レベルを指定します。これにより、特定の値の範囲に焦点を当てたり、より視覚的に魅力的なプロットを作成したりすることができます。
等高線にラベルを追加する
matplotlibの等高線プロットをより情報豊かにするために、等高線にラベルを追加することができます。これは、各等高線が表す正確な値を表示したいときに特に便利です。
等高線にラベルを追加する方法の例を示します:
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# ラベル付きの等高線プロットを作成
plt.figure(figsize=(10, 8))
contour = plt.contour(X, Y, Z)
plt.clabel(contour, inline=True, fontsize=8)
plt.colorbar(contour)
plt.title("Matplotlibのラベル付き等高線プロット - how2matplotlib.com")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.show()
出力:
この例では、plt.clabel()
関数を使用して等高線にラベルを追加します。inline=True
パラメータは、ラベルが等高線の上に直接配置されることを保証し、fontsize
はラベルテキストのサイズを制御します。
塗りつぶし等高線プロットの作成
通常の等高線プロットは等しい値を表すために線を使用しますが、塗りつぶし等高線プロットは値の範囲を表すために色付きの領域を使用します。これは連続データ分布を視覚化するのに特に効果的です。
塗りつぶし等高線プロットを作成する方法の例は次のとおりです:
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 塗りつぶし等高線プロットを作成
plt.figure(figsize=(10, 8))
contourf = plt.contourf(X, Y, Z, cmap='viridis')
plt.colorbar(contourf)
plt.title("Matplotlib 塗りつぶし等高線プロット - how2matplotlib.com")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.show()
出力:
この例では、plt.contourf()
関数を使用して塗りつぶし等高線プロットを作成します。cmap
パラメータを使用すると、塗りつぶされた領域のカラーマップを指定できます。
輪郭プロットと塗りつぶし輪郭プロットの組み合わせ
より包括的な視覚化のために、通常の等高線と塗りつぶされた等高線領域を組み合わせることができます。このアプローチは、等高線の正確な値情報と塗りつぶされた等高線の全体的な分布ビューの両方を提供します。
等高線と塗りつぶし等高線プロットを組み合わせる方法の例を示します:
import numpy as np
import matplotlib.pyplot as plt
# サンプルデータを生成
x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
X, Y = np.meshgrid(x, y)
Z = np.sin(np.sqrt(X**2 + Y**2))
# 結合した等高線プロットを作成
plt.figure(figsize=(10, 8))
contourf = plt.contourf(X, Y, Z, cmap='viridis', alpha=0.7)
contour = plt.contour(X, Y, Z, colors='black', linewidths=0.5)
plt.clabel(contour, inline=True, fontsize=8)
plt.colorbar(contourf)
plt.title("結合されたMatplotlib等高線プロット - how2matplotlib.com")
plt.xlabel("X軸")
plt.ylabel("Y軸")
plt.show()
出力:
この例では、まず plt.contourf()
を使用して塗りつぶされた等高線プロットを作成し、その後 plt.contour()
を使用して通常の等高線を重ねます。 plt.contourf()
の alpha
パラメータは塗りつぶされた領域の透明度を制御し、等高線を視認可能にします。
輪郭の色をカスタマイズする
Matplotlibは、等高線プロットの色をカスタマイズするための広範なオプションを提供します。あらかじめ定義されたカラーマップを使用したり、カスタムカラースキームを作成したり、各等高線レベルに対して個別の色を指定したりすることができます。