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

dur*_*hit 3 python matplotlib colormap

matplotlib文档详细讲解了如何正常化的colormaps的pcolormesh,但我怎么能这样做是正确的散点图?

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

不起作用(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'.显然,我不知道如何在散点图中使用色彩映射.

Imp*_*est 13

您使用的语法与链接文档中的语法完全不同.规范化散射或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='*')
Run Code Online (Sandbox Code Playgroud)