整数値を持つ3D NumPy配列をプロットしようとしています。mplot3dとnumpy配列を使用して3Dグリッドをプロットするにはどうすればよいですか?
import numpy as np
def build(self):
grid = np.empty((10,10,10))
grid = grid.astype(np.int)
grid.fill(-1)
return grid
上記の方法では、3Dグリッドを作成し、-1の値で塗りつぶします。この場合、-1は空のセルの表現になります。
たとえば、位置(0,0,0)、(0,0,1)y(5,5,5)の3つの要素をこのグリッドに配置するプロット後に同じ数の要素が表示されない。ここに画像を添付します。
画像の右側に4番目の要素があります(マイナー階調があります)。下記の通り、グリッドをプロットする
私のコードは次のとおりです。
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def plot_grid(self, np_grid):
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = np_grid.sum(0)
y = np_grid.sum(1)
z = np_grid.sum(2)
ax.scatter(x, y, -z, zdir='z', c='red')
plt.show()
私は私が正しくx,y,z
ベクトルを得ていないと思います。 ndarray
からx,y,z
をどうやって得ることができますか?
ここのアプローチは理解できません。 「(0,0,0)、(0,0,1)y(5,5,5)」が何をすべきかを含む[mcve]を入力し、何が起こるべきかを明確に説明してください。すでに 'grid.fill(-1)'が配列のどこにでも-1を置いて、最初の軸を合計すると、どこにでも10 *( - 1)が与えられます。 – ImportanceOfBeingErnest