如何使用colorbar底图散点图?

时间:2017-07-19 15:52:05

标签: python matplotlib matplotlib-basemap

我想绘制一系列散点xx,yy和r是点值。我想为r值创建colorbar。它与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个arg是size隐含的吗? 那么,它有什么问题?以及如何使用colorbar m.scatter点?

1 个答案:

答案 0 :(得分:3)

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

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

answer you linked中所述,未指定第三个参数,然后将第四个参数设置为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)