PythonとMatplotlibで3Dカラーサーフェス(着色曲面)を描画する方法
Pythonを使って3Dのカラーサーフェス(着色された曲面)を取得するには、Matplotlibのplot_surface()メソッドを利用します。以下の手順に従うことで、簡単に美しい3D曲面グラフを作成できます。
手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- NumPyを使用してx・yのデータポイントを作成します。
- メッシュグリッドを生成し、z値(3Dデータ)を計算します。
- 新しい図を作成するか、既存の図をアクティブにします。
- 3D投影の axes を取得します。
plot_surface()でサーフェスプロットを作成します。カラーマップを指定すると、z値に応じた色分けが可能です。show()メソッドで図を表示します。
サンプルコード
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
x = np.linspace(-3, 3, 100)
y = np.cos(x)
x, y = np.meshgrid(x, y)
z = x ** 2 + y ** 2 - 2
fig = plt.figure()
ax = plt.axes(projection='3d')
surf = ax.plot_surface(x, y, z,
cmap=plt.get_cmap('hot'),
edgecolor='none')
plt.show()実行結果
上記のコードを実行すると、hot カラーマップによって赤〜黄色にグラデーション表示された3D曲面が出力されます。z値が大きいほど明るい色で表現され、曲面の高低が直感的に把握できます。
ポイント解説
- np.meshgrid(): 1次元のx・y配列から2次元の格子座標を生成し、曲面全体をカバーできるようにします。
- cmap引数:
'hot'のほかにも'viridis'や'coolwarm'など、さまざまなカラーマップを指定できます。 - edgecolor:
'none'を指定すると面の境界線が非表示になり、滑らかな見た目になります。
-
PythonのMatplotlibで中空(白抜き)の四角形マーカーを描画する方法
Matplotlibで中空(塗りつぶしなし)の四角形マーカーを描くには、マーカーの種類に ks を指定し、markerfacecolor=none、markersize=15、markeredgecolor=red を設定します。これにより、枠線だけの白抜きスタイルの四角形マーカーが描画されます。 各パラメータの意味 ks:k は黒色(black)、s は四角形(square)を表すマーカースタイルです。 markerfacecolor=none:マーカーの内部を塗りつぶさず、中空にします。 markersize(ms):マーカーのサイズを指定します(ここでは15)。 markeredgec
-
【Python】Matplotlibのplt.show()ウィンドウを最大化する方法
概要Matplotlibでグラフを表示すると、デフォルトでは小さなウィンドウが開きます。plt.get_current_fig_manager() と mng.full_screen_toggle() の2つのメソッドを組み合わせることで、plt.show() で表示されるウィンドウを簡単に最大化(全画面表示)できます。手順subplot() メソッドを使い、現在の図にサブプロットを追加します(nrow=1、ncols=1、index=1)。リスト [1, 2, 3] を渡して pie() メソッドを呼び出し、円グラフを作成します。get_current_fig_manager() メソッドで