在 plt.scatter 中明确设置颜色条箱

Explicitly setting colorbar bins in plt.scatter

我在 U.S 的底图上创建了一个散点图。使用 pyplot.scatter,其中颜色条的 bin 在输入数据的范围内均匀分布。但是,我想明确控制颜色条的箱子以创建不均匀的箱子,例如[-20, -10, -5,-4,-3,-2,-1,0,1,2,3,4,5,50] 而不是 -2050 之间均匀分布的 bin。如何做到这一点?

要在 plt.scatter 中的颜色条中设置自己的刻度,您可以将 fig.colorbar 中的 ticks 参数更改为您想要的任何值列表:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
cm = plt.cm.get_cmap('RdYlBu')
xy = range(20)
z = xy
sc = plt.scatter(xy, xy, c=z, vmin=0, vmax=20, s=35, cmap=cm)

cbar = fig.colorbar(sc, ticks=[0, 1, 15])
plt.show()