【问题标题】:How to basemap scatter with colorbar?如何使用颜色条散布底图?
【发布时间】:2017-07-19 15:52:04
【问题描述】:

我想绘制一系列散点 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 隐含的? 那么,它有什么问题呢?以及如何使用颜色条来 m.scatter 点?

【问题讨论】:

    标签: python matplotlib matplotlib-basemap


    【解决方案1】:

    如果您不标记选项,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)
    

    【讨论】:

      猜你喜欢
      • 2016-04-07
      • 1970-01-01
      • 2014-09-10
      • 2016-06-26
      • 2018-04-09
      • 1970-01-01
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多