我正在尝试使用以下代码在matplotlib中绘制表面:
from matplotlib import cm
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import axes3d, Axes3D
import pylab as p
vima=0.5
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(0, 16.67, vima)
Y = np.arange(0, 12.5, vima)
X, Y = np.meshgrid(X, Y)
Z = np.sqrt(((1.2*Y+0.6*X)**2+(0.2*Y+1.6*X)**2)/(0.64*Y**2+0.36*X**2))
surf = ax.plot_surface(X, Y, Z,rstride=1, cstride=1, alpha=1,cmap=cm.jet, linewidth=0)
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
如果您运行它,您将看到一个蓝色的表面,但我想使用jet的整个颜色范围... 我知道有一个类“matplotlib.colors.Normalize”,但我不知道如何使用它。您能否添加必要的代码以实现此目的?
Z
中的 NaN 值后,看起来对我来说很好。 - JoshAdel