Как я могу установить цвета на 3D-графике поверхности?По умолчанию значение Z используется для создания цвета, но оно дважды кодирует одну и ту же информацию и поэтому является избыточным.Я хотел бы добавить другую информацию в цветовое измерение.
%matplotlib notebook
import seaborn as sns
sns.set_context('paper')
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import
import matplotlib.pyplot as plt
from matplotlib import cm
from matplotlib.ticker import LinearLocator, FormatStrFormatter
import numpy as np
fig = plt.figure(figsize=(8,8), dpi=300)
ax = fig.gca(projection='3d')
# Make data.
X = peaks2d.index
Y = peaks2d.columns
X, Y = np.meshgrid(X, Y)
Z = peaks2d.fillna(0).values.T
# Plot the surface.
surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
linewidth=0, antialiased=False)
xlabel('Retention Time')
ylabel('m/z')
title('Peak Selection')

Я пытался использовать color=(Z==0).astype(int)
, но это не сработало.Возвращено
ValueError: Неверный аргумент RGBA: массив ([[0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]])
Если определена цветовая карта, функция должнабыть в состоянии отобразить целые числа на цвет, но, видимо, это не реализовано?