У меня есть 3D-координаты, определяющие положение точек на моем 3D-графике рассеяния с соответствующим количеством значений, для которых я хочу создать цветовую шкалу для представления диапазона значений как такового:
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
xs,ys,zs = np.random.random(50),np.random.random(50),np.random.random(50)
values = np.random.random(50)*10
p = ax.scatter3D(xs, ys, zs=zs, c=values)
cbar = fig.colorbar(p)
cbar.cmap(plt.cm.Greys)
без последней строки cbar.cmap(plt.cm.Greys)
я получаю цветовую карту по умолчанию (я думаю, реактивный), но когда я пытаюсь изменить это, я получаю сообщение об ошибке TypeError: Cannot cast array data from dtype('O') to dtype('int64') according to the rule 'safe'
. Я хотел бы иметь возможность изменить это, и я просматривал документацию, но кажется, что существует так много разных способов делать подобные вещи. Как я могу изменить цветовую карту по умолчанию с этой точки?
I'm
ax.scatter3D(..., cmap='gray')
- person tacaswell   schedule 01.08.2014cbar = fig.colorbar(p)
, говоря:TypeError: You must first set_array for mappable
. Если я уберу последние две строки, цветной полосы не будет, а точки будут иметь разные оттенки синего, а не серую цветовую шкалу. - person pbreach   schedule 01.08.2014