【问题标题】:Add colorbar to scatterplot with non-filled circles [duplicate]使用非实心圆圈将颜色条添加到散点图[重复]
【发布时间】:2018-07-15 04:18:15
【问题描述】:

我无法让 pyplot 颜色条在我专门设置 facecolors=None 并且只想显示散点圆的边缘的散点图中配合。有人可以指出我正确的方向吗?谢谢。

这很好用:

    # Solid circles - colorbar shows
    plt.scatter(x, y, c=z, s=15, lw=0.3, cmap='viridis')
    plt.colorbar()
    plt.show()

...但这不是:

    c = plt.cm.viridis(z)
    plt.scatter(x, y, facecolors = 'none', edgecolors = c, s = 15, lw = 0.3) 
    plt.colorbar()
    plt.show()


 Traceback (most recent call last): File "/API/ML_GenerateFeatures.py", line 221, in 
<module> va.scatter_color(df.OIR, df.fwd_delta_mid, df.spread)
File "/API/ML_GenerateFeatures.py", line 184, in scatter_color plt.colorbar() 
File "C:\Python27\Lib\site-packages\matplotlib\pyplot.py", line 2180, in colorbar ret = gcf().colorbar(mappable, cax = cax, ax=ax, **kw)
File "C:\Python27\Lib\site-packages\matplotlib\figure.py", line 1844, in colorbar cb = cbar.colorbar_factory(cax, mappable, **kw)
File "C:\Python27\Lib\site-packages\matplotlib\colorbar.py", line 1365, in colorbar_factory cb = Colorbar(cax, mappable, **kwargs)
File "C:\Python27\Lib\site-packages\matplotlib\colorbar.py", line 918, in __init__ mappable.autoscale_None()
File "C:\Python27\Lib\site-packages\matplotlib\cm.py", line 348, in autoscale_None 
raise TypeError('You must first set_array for mappable')
TypeError: You must first set_array for mappable

【问题讨论】:

  • None 代替 'none" 不会改变颜色图问题。
  • 我很感激。问题是我应该在第二个示例中传递给 plt.colorbar() 的内容。应该是直截了当的,但我不能让它工作。顺便说一句,None 代替 'none' 不起作用 - 我有点太快了。
  • 从这个thread,我看到人们鼓励你让scatter 处理.colorbar()。您可能想发表评论。

标签: python matplotlib colorbar


【解决方案1】:

我认为您可以通过使用 c= 参数创建“正常”散点图来为颜色条播种,从而欺骗系统。然后,在第二步中,移除 facecolor 以仅保留边缘。

x = np.random.random(size=(100,))
y = np.random.random(size=(100,))
c = np.random.random(size=(100,))

fig, ax = plt.subplots()
g = ax.scatter(x, y, marker='o', c=c)
g.set_facecolor('none')
fig.colorbar(g)

【讨论】:

  • 哦,我忘了我已经在上面@IMCoins 链接的副本中提供了相同的解决方案。最好将此问题标记为重复问题。
猜你喜欢
  • 2020-10-29
  • 1970-01-01
  • 2019-03-22
  • 2020-11-03
  • 1970-01-01
  • 1970-01-01
  • 2021-05-16
  • 2017-11-23
  • 2019-05-14
相关资源
最近更新 更多