我正在努力处理复杂的HoloViews图的一些细微问题,尤其是用于自定义字体和数据点外观的链接图。
使用以下代码,我可以创建this plot,该功能具有我想要的大多数功能,但会受到一些困扰:
'ewr'
的整个图集有一个边距(每个其他轴各有一个边距),最好是在集合的左侧;但是我尝试只在s1
和s2
的定义中获得一个的尝试没有成功,而且我在文档中找不到任何关于将边距向左移动(或从底部移到该位置)的信息。 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')