bokeh - 将 HoloViews 绘图与 Bokeh 自定义链接
问题描述
我正在为复杂的 HoloViews 图的一些更精细的点而苦苦挣扎,尤其是自定义字体和数据点外观的链接图。
使用以下代码,我可以创建具有我想要的大部分功能的图,但被一些事情难住了:
- 我想要一个边缘用于链接到的整组图
'ewr'
(每个其他轴都有单独的边缘),理想情况下在集合的左侧;但是我试图在我的定义中只得到一个s1
并且s2
没有奏效,而且我在文档中找不到任何关于将边缘移动到左侧(或底部)的内容。 - 我希望能够定义使用我的数据中未显示在图中的列的工具提示。我可以看到完成此操作的一种方法,如注释的备用定义中所示
s1
,但这会将它创建的绘图与其他绘图取消链接。如何创建具有工具提示的链接图,其中的元素不在这些图中?
作为参考,使用的数据可在此处获得(在下面的代码中转换为 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')
解决方案
推荐阅读
- android - 显示 Toast 消息 30 秒
- python - 如何使用 re 库提取 xml 值中给定标签列表的值?
- java - 连接到托管在 docker 上的远程 Spark 集群
- laravel - 如何在laravel中响应groupBy添加新的键值对?
- node.js - 如何在 mongo db 中查找两个 DateString 格式日期之间的数据?
- python - 不使用算术运算符计算 x/y
- mongodb - Google Cloud Kubernetes Engine 中的 MongoDB 超时错误
- python - 如何根据某些条件从两个数据框中获取行数
- mysql - 为什么mysql AES初始化向量长度总是限制在16字节,即使我选择aes-256-cbc模式?在这种情况下不是32吗?
- python - 如果有更多,如何向下滚动一个向下滚动条