我有 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) 我得到一个默认颜色图(我认为是 jet)但是当我尝试修改它时我得到错误 TypeError:无法根据规则“安全” 将数组数据从 dtype('O') 转换为 dtype('int64')。我希望能够改变这一点,我一直在浏览文档,但似乎有很多不同的方法可以做类似的事情。我如何从此时更改默认颜色图?
我是
请您参考如下方法:
您必须为散点图提供 cmap 关键字。以下是所有可能的 cmap: 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)
