Colorbar в 3D графиках - PullRequest
       6

Colorbar в 3D графиках

0 голосов
/ 29 сентября 2019

У меня проблемы с картой цветов для моего трехмерного графика поверхности.Python говорит:

TypeError: Сначала вы должны установить set_array для mappable

Проблема, вероятно, в определении "surf" - это работает, если я заменю facecolors = col на cmap=cm.coolwarm, но вместо V используется высота (f).

Мой код:

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)
...