2017-07-19 167 views
1

我想绘制一系列散点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第三个参数是size隐? 那么,它有什么问题?以及如何使用颜色条对点进行散射?

回答

2

如果您不标记选项,scatter将假定第三个选项是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)