Я бы хотел построить функцию с тремя переменными следующим образом.Сначала я строю равномерно распределенные точки на трехмерной фигуре с помощью точечной диаграммы, затем я хочу использовать метод, чтобы закрасить каждую точку в кубе в соответствии со значением функции.Функция f (x, y, z) = (x ^ 2 + y ^ 2-z ^ 2) ^ 2.
Пока мне удалось равномерно заполнить сюжет маленькими шариками, но раскраскане хочет работать.Я попытался посмотреть, как работать с картой цветов, но результаты были либо самыми простыми, либо слишком жесткими.
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
import math as mt
fig = plt.figure()
ax = fig.gca(projection='3d')
# Make data.
X = np.linspace(-5, 5, 6)
Y = np.linspace(-5, 5, 6)
Z = np.linspace(-5, 5, 6)
X, Y, Z = np.meshgrid(X, Y, Z)
# Plot the surface.
t = (X**2+Y**2-Z**2)**2
surf = ax.scatter(X, Y, Z, c=t, cmap=cm.viridis)
ax.set_zlim(-5, 5)
ax.zaxis.set_major_locator(LinearLocator(5))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
ax.set_xlabel('X axis')
ax.set_ylabel('Y axis')
ax.set_zlabel('Z axis')
# Add a color bar which maps values to colors.
#fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
Я думаю, что я пробовал, ничего не получится, даже если ошибок нет, так как соединениецветов с точкой не обрабатывается.Я думал об использовании сюжета вместо разброса, но опять же я не нашел никакого полезного материала на цветовых картах.