Как установить цвет в 3d-оси matplotlib ax.plot_surface ()? - PullRequest
0 голосов
/ 26 сентября 2019

Как я могу установить цвета на 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')

enter image description here

Я пытался использовать 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]])

Если определена цветовая карта, функция должнабыть в состоянии отобразить целые числа на цвет, но, видимо, это не реализовано?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...