Da Sie ein Anfänger Python-Benutzer sind, empfehle ich dringend, nehmen Sie sich die Zeit, um die Dokumentation für die Pakete, die Sie verwenden, zu überprüfen. Antwortet diese example from matplotlib's documentation Ihre Frage?
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
Alternativ könnten Sie sehen auch die numpy documentation für die meshgrid
-Funktion, die ein ähnliches Beispiel gibt:
x = np.arange(-5, 5, 0.1)
y = np.arange(-5, 5, 0.1)
xx, yy = meshgrid(x, y, sparse=True)
z = np.sin(xx**2 + yy**2)/(xx**2 + yy**2)
h = plt.contourf(x,y,z)
EDIT
Wenn Sie manuell die Werte von Z
einstellen , können Sie etwas in Richtung
fig = plt.figure()
ax = fig.gca(projection='3d')
x = np.arange(11)
y = np.arange(11)
X, Y = np.meshgrid(x,y)
Z = np.zeros_like(X)
Z[5][5] = 5
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1)
plt.show()
tun
Was meinen Sie mit "Werte zu einigen der Punkte im Raster zuweisen." Wie haben Sie ein Z-Array von Werten für jede X, Y-Koordinate? –
Nun ja, so etwas, aber ich konnte mir nicht vorstellen, wie man das Z als Funktion von X- und Y-Koordinaten in Beziehung setzt und es dann als Kontur darstellt, um es zu visualisieren – ThunderFlash
@karasinski gab dir eine Antwort auf das, was du scheinst fragen. Sie können jeden Wert direkt durch die Attribution'Z [5,5] = 5 'angeben. Was soll dein Raster darstellen? Arbeiten Sie in der Schätzung? – armatita