【问题标题】:Colormaps in BokehBokeh 中的颜色图
【发布时间】:2021-08-28 08:22:47
【问题描述】:

我在 matplotlib 上的调色板有一些问题。

我只想在图例上显示 2 种颜色,因为我正在显示一个虚拟变量(0 和 1)。 代码适用于 0 和 1 值(红色和蓝色)。问题是传说(见图)。

palette = brewer['RdBu'][8]

如果我在前面的代码中添加 2(只有 2 种颜色),我会收到错误,因为调色板包含 8 种颜色。

我怎样才能改变它?

palette = brewer['RdBu'][8]

palette = palette[::-1]

color_mapper = LinearColorMapper(palette = palette, low = 0, high = 1)

tick_labels = {'0': '0', '1': '1'}

color_bar = ColorBar(color_mapper=color_mapper, label_standoff=8,width = 500, height = 20,
border_line_color=None,location = (0,0), orientation = 'horizontal', major_label_overrides = tick_labels)

提前谢谢你!

【问题讨论】:

  • 什么是brewer?这不是 matplotlib 命令。是来自bokeh 吗?您可能还想为此添加标签。确保在问题中包含所有模块导入,因为这有助于人们提供更高质量的答案。
  • 是 matplotlib 的散景功能(对不起)。来自网站:ColorBrewer 中包含的调色板组。该字典使用调色板名称进行索引,以获得完整的调色板组,例如YlGnBu,然后用整数进一步索引以从组中选择特定大小的调色板:

标签: python matplotlib colors bokeh


【解决方案1】:

您可以通过切片来减少调色板: 例如

palette = brewer['RdBu'][8][:2]

只有两个元素长,并采用第一项和第二项。 下面的托盘

palette = brewer['RdBu'][8][::7]

也是两个元素长,取第一个和最后一个元素(这只是选择这两个元素的一种可能方式)。

【讨论】:

  • 谢谢!现在,我该如何修改图例?我只想读取 0 和 1,而不是 0.2、0.4、ecc。我用过这个:tick_labels={'0':' Paesi in via di sviluppo ','1':'Paesi sviluppati',"0.2":"","0.4":"","0.8":"","0.60":""} 但现在我只读取了 0、0.6 和 1
  • 您可以将ticker=BasicTicker(desired_num_ticks=2) 添加到您的ColorBar。这来自bokeh.models
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-20
  • 1970-01-01
  • 2018-02-11
相关资源
最近更新 更多