首页 > 解决方案 > 将 HoloViews 绘图与 Bokeh 自定义链接

问题描述

我正在为复杂的 HoloViews 图的一些更精细的点而苦苦挣扎,尤其是自定义字体和数据点外观的链接图。

使用以下代码,我可以创建具有我想要的大部分功能的图,但被一些事情难住了:

作为参考,使用的数据可在此处获得(在下面的代码中转换为 Pandas 数据框,df)。


import holoviews as hv
from holoviews import dim, opts

hv.extension('bokeh')

renderer = hv.renderer('bokeh') 
from bokeh.models import HoverTool
from holoviews.plotting.links import DataLink

TOOLS="crosshair,pan,wheel_zoom,zoom_in,zoom_out,box_zoom,undo,redo,reset,tap,save,box_select,poly_select,lasso_select".split(",") 
ht = HoverTool(
        tooltips=[('Name', '@{name}'), ('EWR', '@{ewr}{%0.2f}'), ('Win Rate', '@{winrate}{%d}')],
        formatters={'ewr' : 'printf', 'winrate' : 'printf'})

point_opts = opts.Scatter(fill_color='black', fill_alpha=0.1, line_width=1, line_color='gray', size=5, tools=TOOLS+[ht])
hist_opts = opts.Histogram(fill_color='gray', fill_alpha=0.9, line_width=1, line_color='gray', tools=['box_select'], labelled=[None, None])

#s1 = hv.Scatter(df[['kfai','ewr','name','winrate']]).hist(num_bins=51, dimension='kfai')
s1 = hv.Scatter(df, 'kfai','ewr').hist(num_bins=51, dimension='kfai')
s2 = hv.Scatter(df, 'aerc', 'ewr').hist(num_bins=51, dimension=['aerc',None])
s3 = hv.Scatter(df, 'winrate', 'ewr').hist(num_bins=51, dimension=['winrate','ewr'])
p = (s1 + s2 + s3).opts(point_opts, hist_opts, opts.Layout(shared_axes=True, shared_datasource=True))

renderer.save(p, '_testHV')

标签: bokehholoviews

解决方案


推荐阅读