如何使用颜色条散布底图?

How to basemap scatter with colorbar?

我想绘制一系列散点 xx、yy,r 是点值。我想为 r 值创建颜色条。类似于2-D coordination plot,只是在本例中改变底图。

sc=map.scatter(xx,yy,r,s=30,cmap=plt.cm.jet)
plt.colorbar(sc)

但提示:

TypeError: scatter() got multiple values for argument 's'

This answer 解释说 scatter 中的第 3 个参数是 size 隐含的? 那么,它有什么问题呢?以及如何 m.scatter 点与颜色条?

如果您不标记选项,scatter 将假定第 3 个是 s(大小)。在您的情况下,您希望 r 成为点的颜色,因此您需要告诉它(即使用 kwarg 选项 c):

sc=map.scatter(xx, yy, c=r, s=30, cmap=plt.cm.jet)

answer you linked 中所述,通过不命名第 3 个参数,然后将第 4 个参数设置为 s,您已指定 s 两次,第一次是隐式 (虽然你不是故意的),第二次明确地。

另一种方法,如果您不想命名您的论点,请确保您的论点顺序与 scatter 期望的顺序相同:

sc=map.scatter(xx, yy, 30, r, cmap=plt.cm.jet)

docs可以看出预期的顺序:

matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)