我想绘制一系列散点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点?
答案 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)