我使用Datashader来制作不同参数的交叉图,这是由于我处理的数据量太大。我的想法是启用某种类型的交互,允许用户直接从图中选择,基于数据趋势的异常值显示这些异常值。我想知道Holoviews Selection1D流是否与datashader兼容。
这段代码模拟了我的意思:
import numpy as np
import holoviews as hv
from holoviews import opts
from holoviews import streams
from holoviews.operation.datashader import datashade
hv.extension('bokeh')
# Tools to select data
opts.defaults(opts.Points(tools=['box_select', 'lasso_select']))
# Random points to plot
random_points = hv.Points(np.random.randn(1000))
# Holoviews
selection = streams.Selection1D(source=random_points)
# Selected points by Holoviews selection stream
selected_box = hv.DynamicMap(lambda index: random_points.iloc[index],
kdims=[], streams=[selection])
# Final Overlay
Overlay = (random_points * selected_box).opts(padding = 0.01)
Overlay到目前为止,只要我调用selection,我就会得到一个由所选点的索引组成的矩阵。在用datashade(Overlay)调用Datashader plot之后,random_points和selected_box之间的交互中断,因此我不确定这个流是否与datashader兼容,或者我使用该流的方式是否错误!
这就是激发我灵感的原因:http://holoviews.org/reference/apps/bokeh/selection_stream.html#bokeh-gallery-selection-stream
发布于 2019-08-30 03:02:17
有帮助的例子来看看可能性。现在我知道没有必要从图中提取数据了。我可以使用动态地图和流,通过边界或selection1D进行另一个绘图。
https://stackoverflow.com/questions/57641314
复制相似问题