Ich versuche, ein 3D-NumPy-Array zu plotten, das ganzzahlige Werte hat.Wie könnte ich 3D-Gitter mit mplot3d und numpy array plotten?
import numpy as np
def build(self):
grid = np.empty((10,10,10))
grid = grid.astype(np.int)
grid.fill(-1)
return grid
Die vorherige Methode erstellt ein 3D-Raster und füllt den Wert -1. In diesem Fall ist -1 eine Darstellung der leeren Zelle.
Setzen Sie 3 Elemente in diesem Raster, zum Beispiel in den Positionen (0,0,0), (0,0,1) y (5,5,5) Ich sehe nicht die gleiche Anzahl von Elementen nach der Handlung . Ich befestige hier ein Bild .
Es gibt ein viertes Element auf der rechten Seite des Bildes (mit geringer Tonalität).
Mein Code, um das Raster zu zeichnen ist, wie unten angegeben:
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()
Ich glaube, ich nicht x,y,z
Vektoren richtig bin immer. Wie kann ich x,y,z
von ndarray
richtig erhalten?
Der Ansatz hier ist nicht verständlich. Bitte geben Sie ein [mcve] (einschließlich was "(0,0,0), (0,0,1) y (5,5,5)" tun sollte), erklären Sie dann klar, was passieren soll. Beachten Sie, dass bereits 'grid.fill (-1)' einfach überall -1 in das Array einfügt und das Summieren über die erste Achse Ihnen somit 10 * (- 1) gibt. – ImportanceOfBeingErnest