将HoloViews图与Bokeh自定义链接

时间:2019-04-04 21:34:11

标签: bokeh holoviews

我正在努力处理复杂的HoloViews图的一些细微问题,尤其是用于自定义字体和数据点外观的链接图。

使用以下代码,我可以创建this plot,该功能具有我想要的大多数功能,但会受到一些困扰:

  • 我希望链接到'ewr'的整个图集有一个边距(每个其他轴各有一个边距),最好是在集合的左侧;但是我尝试只在s1s2的定义中获得一个的尝试没有成功,而且我在文档中找不到任何关于将边距向左移动(或从底部移到该位置)的信息。
  • 我希望能够定义一些工具提示,这些提示使用我的数据中未显示在图中的列。我可以看到一种完成此操作的方法,如对s1的注释替代定义所示,但这使它创建的图与其他图断开了链接。如何创建链接的图,这些图的工具提示中的元素不在这些图中?

作为参考,使用的数据here(在下面的代码中转换为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')

0 个答案:

没有答案