by Guest » 22 Dec 2024, 21:09
Ich versuche, eine 3D-Netzoberfläche mit matplotlib grafisch darzustellen und die Grenzen des Diagramms einzuschränken. Die X- und Y-Achsen sind korrekt eingeschränkt, aber es gibt einen Überlauf in der Z-Achse.
Was fehlt mir? Hier ist mein Code:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(10,10))
x = np.linspace(-6,6,100)
y = np.linspace(-6,6,100)
X,Y = np.meshgrid(x,y)
def f(x,y):
return x**2 + 3*y
Z = f(X,Y)
ax = plt.axes(projection = '3d')
ax.plot_surface(X,Y,Z,cmap='viridis')
ax.title.set_text("z=x**2+3y")
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_zlim3d(zmin=-3,zmax=5)
ax.set_xlim3d(xmin=-6,xmax=6)
ax.set_ylim3d(ymin=-6,ymax=6)
plt.show()
Das Diagramm:
Bearbeiten:
Wenn ich Clipping/Min/Max zu den Z-Werten hinzufüge, ist das Diagramm etwas besser, aber es setzt z Werte außerhalb der Grenzen zu den Grenzen selbst. Die beiden folgenden Vorschläge bewirken dies. Vielleicht liegt es daran, dass ich einen Mac verwende?
z_tmp = np.maximum(np.minimum(5,Z),-3)
z_temp = np.clip(Z, -3, 5, None)

Ich versuche, eine 3D-Netzoberfläche mit matplotlib grafisch darzustellen und die Grenzen des Diagramms einzuschränken. Die X- und Y-Achsen sind korrekt eingeschränkt, aber es gibt einen Überlauf in der Z-Achse.
Was fehlt mir? Hier ist mein Code:
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits import mplot3d
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure(figsize=(10,10))
x = np.linspace(-6,6,100)
y = np.linspace(-6,6,100)
X,Y = np.meshgrid(x,y)
def f(x,y):
return x**2 + 3*y
Z = f(X,Y)
ax = plt.axes(projection = '3d')
ax.plot_surface(X,Y,Z,cmap='viridis')
ax.title.set_text("z=x**2+3y")
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')
ax.set_zlim3d(zmin=-3,zmax=5)
ax.set_xlim3d(xmin=-6,xmax=6)
ax.set_ylim3d(ymin=-6,ymax=6)
plt.show()
Das Diagramm:
[img]https://i.sstatic.net/LVAvw.png[/img]
Bearbeiten:
Wenn ich Clipping/Min/Max zu den Z-Werten hinzufüge, ist das Diagramm etwas besser, aber es setzt z Werte außerhalb der Grenzen zu den Grenzen selbst. Die beiden folgenden Vorschläge bewirken dies. Vielleicht liegt es daran, dass ich einen Mac verwende?
z_tmp = np.maximum(np.minimum(5,Z),-3)
z_temp = np.clip(Z, -3, 5, None)
[img]https://i.sstatic.net/sniiW.png[/img]