Versuche, multivariate Funktionen in der 3D-Matplotlib zu zeichnen; gibt leere Zahl @ zurü

Ich versuche, eine Funktion F (x1, x2) in der 3D-Matplotlib zu zeichnen, und folge von hier aus einem Tutorial:http: //glowingpython.blogspot.com/2012/01/how-to-plot-two-variable-functions-with.htm

Wenn ich versuche, den Code auszuführen, ist die Abbildung leer, und es wird nicht einmal die Ausgabe der Achsen angezeigt. Ich habe mich gefragt, ob jemand die Gründe für dieses Verhalten herausfinden kann. Ich benutze Python 2.7

from __future__ import division

from numpy import exp,arange
from pylab import meshgrid,cm,imshow,contour,clabel,colorbar,axis,title,show
import math 
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
from matplotlib import pylab
from numpy import arange,array,ones
from scipy import stats
import numpy
import matplotlib.ticker as mtick
import sys
import os


# the function that I'm going to plot
def z_func(x1,x2):
 return exp(-(1-x1)**2 - 100*((x2-x1**2)**2))


x1 = arange(5.0,-5.0,-0.01)
x2 = arange(-5.0,5.0,0.01)
X1,X2 = meshgrid(x1, x2) # grid of point
Z = z_func(X1, X2) # evaluation of the function on the grid


fig = plt.figure()
ax = fig.gca(projection='3d')
surf = ax.plot_surface(X1, X2, Z, rstride=1, cstride=1, cmap=cm.RdBu,linewidth=0, antialiased=False)

ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))

ax.set_xlabel('x-axis')
ax.set_ylabel('y-axis')
ax.set_zlabel('z-axis')
ax.view_init(elev=25, azim=-120)

fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()

Antworten auf die Frage(2)

Ihre Antwort auf die Frage