如何在matplotlib散点图中规范化色彩映射?

时间:2017-03-31 04:09:26

标签: python matplotlib colormap

matplotlib documentation详细解释了如何规范化pcolormesh的色彩映射,但我如何正确地为散点图做这个?

normalize = mcolors.Normalize(vmin=-1, vmax=1)
plt.scatter(x,y,z,cmap=colormap(normalize),marker='*',s=5)

不起作用(TypeError: Cannot cast array data from dtype('O') to dtype('int64') according to the rule 'safe'

只是z数据不完全是从-1到1,我正在绘制多个数据集,这些数据集的限制在+/- 0.93 - 98左右,但我希望颜色以零为中心,从-1开始为1,以便我对所有各种数据集都有相同的参考。

哦,当我不尝试规范化时,我得到TypeError: scatter() got multiple values for keyword argument 's'。显然,我不知道如何在散点图中使用色彩映射。

1 个答案:

答案 0 :(得分:12)

您使用的语法与链接文档中的语法完全不同。规范化散射或pcolor(网格)或任何其他标量可映射对象之间基本没有区别。

总是

colormap = plt.cm.bwr #or any other colormap
normalize = matplotlib.colors.Normalize(vmin=-1, vmax=1)
plt.scatter(x, y, c=z, s=5, cmap=colormap, norm=normalize, marker='*')