首先,不要做这样的事情:mat = []
X = []
Y = []
for x in range(0,bignum):
mat.append([])
X.append(x);
for y in range (0,bignum):
mat[x].append(random.random())
Y.append(y)
相当于:mat = np.random.random((bignum, bignum))
X, Y = np.mgrid[:bignum, :bignum]
……但它的速度要快几个数量级,并且使用了一小部分使用列表然后转换成数组的内存。
然而,你的例子非常有效。from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import numpy as np
bignum = 100
mat = np.random.random((bignum, bignum))
X, Y = np.mgrid[:bignum, :bignum]
fig = plt.figure()
ax = fig.add_subplot(1,1,1, projection='3d')
surf = ax.plot_surface(X,Y,mat)
plt.show()
如果您阅读了plot