Из того, что я собираю для каждой точки (x, y), у вас есть две части информации, высота и цвет. Вы хотите иметь поверхностный график с использованием высоты и по цвету в соответствии с цветом в каждом месте.
Хотя вы можете легко указать custom color maps Я не думаю, что это вам поможет. Что вы думаете о том, что это не так, как цветовая палитра, которая отображает высоту в (x, y) на цвет.
Результат является наиболее очевидным на примере поверхностных участков here
Я считаю, что вы хотите за рамки Matplotlib и может быть сделано только с какой-то хак, который я сомневаюсь, что вы хотите использовать.
Еще вот мое предложение:
import pylab as py
from mpl_toolkits.mplot3d import Axes3D
import numpy as np
X = np.arange(-5, 5, 0.1)
Y = np.arange(-5, 5, 0.1)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
colorise = [((5.0 + X[i][i])/10.0, 0.5, 0.0) for i in xrange((len(X)))]
ax = py.subplot(111, projection='3d')
for i in xrange(len(X)):
ax.plot(X[i], Y[i], Z[i], "o", color=colorise[i])
py.show()
Это производит следующее:
Важно это отображается 3D-поверхности с окраской, не зависит от высоты (это градиент по направлению). Наиболее очевидной проблемой является то, что окраска отдельных точек теряет поверхности matplotlibs, что делает ее болезненно понятной, почему 3D-графика называется проекцией !
Извините, это не очень полезно, надеюсь, что лучшее программное обеспечение существует, или я не знаю о полных функциях matplotlibs.
, когда вы говорите, что ваш массив RGB равен 2d, вы включаете измерение вдоль RGB? То есть, это 2d массив пикселей с 1d для цвета или 1d массив пикселей с 1d для цвета? – askewchan
Я просто взял фотографию и преобразовал изображение в двумерный массив numpy. Я не уверен, что спрашивал ваш вопрос, но извините, если мой вопрос был плохо написан. – jsmith
Просто техничность; если у вас обычное цветное изображение, это будет фактически 3d, так как его 'shape' будет чем-то вроде' (600,800,3) 'для трех цветов. Оттенки серого будут «(600 800)». Похоже, ваш массив RGB технически 3d, так как он представляет собой 2-мерное изображение в цвете. – askewchan