如何在Bokeh中格式化colorbar标签

时间:2017-09-03 15:20:26

标签: bokeh holoviews

我已经生成了一个类似于示例的holoviews \ Bokeh heatmap graph 我在plot_opts中添加了一个带有colorbar=True的颜色条,但是颜色条的标签显示为科学数字。
如何控制标签的格式? 我尝试实现以下代码但没有成功:

cbf = PrintfTickFormatter(format='0,0')
color_bar = ColorBar(formatter=cbf)

然后将其添加到plot_opts但它没有改变任何内容。

我查看了这个user guide documentationmodel documentation,但没有设法弄清楚如何实现该属性。

更新
这是完整的代码仍然不起作用。

dfqudf.head()  

|的 INDEX |的 |的小时 |的查询类型 |
| ------- | ------- | -------- | ------------- |
| 72 |周日| 0 | 205104 |
| 24 |周一| 0 | 210293 |
| 120 |周二| 0 | 206381 |
| 144 |周三| 0 | 212874 |
| 96 |周四| 0 | 216195 |

hv.extension('bokeh')
colors = ["#75968f", "#a5bab7", "#c9d9d3", "#e2e2e2", "#dfccce", "#ddb7b1", "#cc7878", "#933b41", "#550b1d"]
heatmap = hv.HeatMap(data=dfqudf[['hour','dow','QUERYTYPE']]
                     , label="Query Hour by Weekday")

hover = HoverTool(tooltips=[('Num of Queries', '@QUERYTYPE{0,0}')])

formatter = NumeralTickFormatter(format='0,0')  #PrintfTickFormatter(format='%.1f') doesn't work either
color_bar = {'formatter': formatter}
plot_opts = dict(width=900, height=300, xrotation=45, xaxis='top', labelled=[]
                 , tools=[hover], toolbar='below'
                 , colorbar=True, colorbar_opts= color_bar
                )
style = dict(cmap=ListedColormap(colors))

heatmap(plot=plot_opts, style=style)

1 个答案:

答案 0 :(得分:3)

使用hv.help(element),您可以找到可以自定义元素的选项。支持色彩映射的元素(包括HeatMap)接受一个colorbar_opts绘图选项,该选项将传递给ColorBar构造函数。这是一个非常简单的例子:

from bokeh.models import PrintfTickFormatter
formatter = PrintfTickFormatter(format='%.1f')
plot_opts = dict(colorbar=True, colorbar_opts={'formatter': formatter})
hv.HeatMap([(0,0,0), (1,1,1)]).opts(plot=plot_opts)