【问题标题】:Explicitly setting colorbar bins in plt.scatter在 plt.scatter 中显式设置颜色条箱
【发布时间】:2017-12-11 04:22:20
【问题描述】:

我使用 pyplot.scatter 在美国的底图上创建了一个散点图,其中颜色条的 bin 在输入数据的范围内均匀分布。但是,我想明确控制颜色条的 bin 以创建不均匀的 bin,例如[-20, -10, -5,-4,-3,-2,-1,0,1,2,3,4,5,50] 而不是在 -20 和 50 之间均匀间隔的 bin。如何做到这一点?

【问题讨论】:

标签: python matplotlib scatter-plot colorbar


【解决方案1】:

要在plt.scatter 的颜色栏中设置您自己的刻度,您可以将fig.colorbar 中的ticks 参数更改为您想要的任何值列表:

import matplotlib.pyplot as plt
fig, ax = plt.subplots()
cm = plt.cm.get_cmap('RdYlBu')
xy = range(20)
z = xy
sc = plt.scatter(xy, xy, c=z, vmin=0, vmax=20, s=35, cmap=cm)

cbar = fig.colorbar(sc, ticks=[0, 1, 15])
plt.show()

【讨论】:

  • 谢谢你,但我想我对你问题的原始回答是错误的。我想创建代表不同大小的数字范围的箱,但在颜色条上均匀分布。像这样:nature.com/article-assets/npg/ngeo/journal/v9/n7/carousel/…
  • @jimutters 哦,好的,但我认为我的解决方案可以解决这个问题,不是吗?我的意思是,您只需要在离散颜色栏中设置值,或者颜色栏中的这些数字是“虚构的”并且不代表分配的真实值?
  • 要获得离散的颜色图,只需将第 3 行代码替换为 cm = plt.cm.get_cmap('RdYlBu',10),例如,tick 的赋值仍然有效。
猜你喜欢
  • 2020-10-06
  • 1970-01-01
  • 2011-01-28
  • 2017-01-12
  • 2011-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多