3D图中的颜色条

时间:2019-09-29 04:23:14

标签: 3d colorbar

我的3D表面图的颜色图有问题。 Python说:

  

TypeError:您必须首先为可映射设置set_array

问题可能出在“冲浪”的定义上-如果我将facecolors = col替换为cmap=cm.coolwarm可以解决问题,但是它使用高度(f)而不是V。

我的代码是:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.gca(projection='3d')
L=2


krok=0.025

x = np.arange(-L, L,krok)
y = np.arange(-L, L,krok)
x, y = np.meshgrid(x, y)

ro=np.sqrt(x**2+y**2)
f=np.exp(-ro**2)

df=-2*ro*np.exp(ro**2)
ddf=4*ro**2*np.exp(ro**2)-2*np.exp(ro**2)

g=ro**2*(1+df**2)

V = ((ro**3*ddf/g)-df)**2/(4*g)

col = cm.jet(V/np.amax(V))

surf = ax.plot_surface(x, y, f, facecolors = col, linewidth=0, antialiased=False)

fig.colorbar(surf)

0 个答案:

没有答案