Seite 1 von 1

Probleme mit plot_surface über einen großen Bereich

Verfasst: Freitag 9. Mai 2014, 08:54
von naddel83
Hallo.
Ich habe ein Problem, was ich nicht wirklich verstehe.
Im folgenden seht ihr ein plot_surface, das wunderbar klappt - jedoch nur für einen kleinen Ausschnitt vom Ganzen:

Code: Alles auswählen

a = np.arange(-2e3, 2.05e3, 0.1e3, dtype=float)
b = np.arange(-10.0, 10.1, 0.5, dtype=float)
x = f(a,b) #einfach eine Funktion

aRich = a[18:23]
bRich = b[18:23]
x_min = x[18:23,18:23]

fig = plt.figure()
ax = fig.add_subplot(1, 1, 1, projection='3d')
X, Y = np.meshgrid(aRich/1e3, bRich)
im = ax.plot_surface(X, Y, x_min, rstride=1, cstride=1, linewidth=0, cmap=cm.gist_rainbow, antialiased=False, shade=False)
plt.show()
Wenn ich aber nun über den ganzen Bereich von a und b mit den dazugehörigen Werten von x plotten möchte

Code: Alles auswählen

X, Y = np.meshgrid(a/1e3, b)
x = f(a,b)
im = ax.plot_surface(X, Y, x, rstride=1, cstride=1, linewidth=0, cmap=cm.gist_rainbow, antialiased=False, shade=False)
plt.show()
dann zeigt er mit einen Fehler: ValueError: too many values to unpack
Kann mir jemand erklären oder auch eine Lösung für mein Problem geben?

Danke im Voraus.

Re: Probleme mit plot_surface über einen großen Bereich

Verfasst: Freitag 9. Mai 2014, 09:39
von boletus999
Schau mal nach, was diese "einfache Funktion" zurückliefert.

Code: Alles auswählen

x = f(a,b) #einfach eine Funktion
Hier ein Beispiel weshalb du diesen Fehler bekommst:

Code: Alles auswählen

In [1]: a = [1,4,6,8]

In [2]: x,y,z = a
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
...
ValueError: too many values to unpack


Re: Probleme mit plot_surface über einen großen Bereich

Verfasst: Freitag 9. Mai 2014, 09:50
von naddel83
Vielen Dank für den Tip. Die Funktion war ein 3D-Array, welches ich in ein 2D Array umwandeln musste. Manchmal ist es so einfach. :-)