
4.14
Matplotlib
を使った
3
次元プロット
299
ax = plt.axes(projection='3d')
ax.plot_surface(X, Y, Z, rstride=1, cstride=1,
cmap='viridis', edgecolor='none');
図4-98 極座標のサーフェス
4.14.4
三角形分割のサーフェス
一部のアプリケーションでは、先の例で必要とされたような均等な間隔のグリッドデータを提供
することが難しい場合があります。このような状況では、三角測量のようにプロットできると非常
に便利です。直交座標または極座標の均等なグリッドデータを描画するのではなく、ランダムに抽
出されたデータをプロットする方法はないでしょうか。
In[11]: theta = 2 * np.pi * np.random.random(1000)
r = 6 * np.random.random(1000)
x = np.ravel(r * np.sin(theta))
y = np.ravel(r * np.cos(theta))
z = f(x, y)
散布図を使って、サンプリングしたデータからサーフェスを作る方法が考えられます(図 4-99)。
In[12]: ax = plt.axes(projection='3d')
ax.scatter(x, y, z, c=z, cmap='viridis', linewidth=0.5);
図4-99 サンプリングした3 次元データの散布図 ...