我有三维坐标定义了我的三维散点图中点的位置,并且我想要创建一个颜色标度来表示相应的值范围:
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)
我得到一个默认的colormap(我认为是jet),但是当我尝试修改它时,我收到错误TypeError: Cannot cast array data from dtype('O') to dtype('int64') according to the rule 'safe'
。我希望能够改变这一点,我一直在查看文档,但似乎有很多不同的方法来做类似的事情。如何从这一点更改默认色图?
我'米
答案 0 :(得分:6)
您必须为散布提供cmap
关键字。以下是所有可能的cmaps:
http://matplotlib.org/examples/color/colormaps_reference.html
你可能想把斧头加到颜色条上。
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, cmap='hot')
fig.colorbar(p, ax=ax)