3次元データを可視化したい場合に、メッシュグリッドを生成して3Dグラフを作成するスクリプトを書きます。
今回は、2次元ガウス分布をプロットしてみます。
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-5, 5, 50)
y = np.linspace(-5, 5, 50)
X, Y = np.meshgrid(x, y)
sigma = 1.1
Z = 1/(2*np.pi*sigma**2)*np.exp(-(X**2+Y**2)/2/sigma**2)
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
surf = ax.plot_surface(X, Y, Z, cmap='inferno')
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('G(X,Y)')
cbar = fig.colorbar(surf, ax=ax, shrink=0.5, aspect=10, location='right', pad=0.14)
fig.savefig("3d.png",dpi = 500,bbox_inches='tight', pad_inches=0.1)実行結果


