Я хочу построить количество, которое задается на параметрической поверхности в трехмерном пространстве (например, распределение температуры по сфере).Я могу построить параметрический трехмерный график сферы (в зависимости от двух параметров phi
и theta
), но я не знаю, как сделать так, чтобы цвета многоугольников, составляющих сферу, зависели от параметров theta
и phi
(обычно цвет многоугольника просто определяется z-положением многоугольника).
Вот базовый пример, на котором изображен тор с картой цветов:
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
angle = np.linspace(0, 2 * np.pi, 32)
theta, phi = np.meshgrid(angle, angle)
r, R = .25, 1.
X = (R + r * np.cos(phi)) * np.cos(theta)
Y = (R + r * np.cos(phi)) * np.sin(theta)
Z = r * np.sin(phi)
# Display the mesh
fig = plt.figure()
ax = fig.gca(projection = '3d')
ax.set_xlim3d(-1, 1)
ax.set_ylim3d(-1, 1)
ax.set_zlim3d(-1, 1)
ax.plot_surface(X, Y, Z, rstride = 1, cstride = 1,cmap="hot")
plt.show()
Однако цвета файлов задаются положением z плитки, я хочу, чтобы цвет задавался функцией f(x,y)
.
Кто-нибудь знает, как мне добиться этой зависимости в Matplotlib??
Большое спасибо!