3

由于我正在使用的数据量,我正在使用 Datashader 制作不同参数的交叉图。我的想法是启用某种交互,允许用户直接从图中选择,基于数据趋势的异常值显示这些异常值。我想知道 Holoviews Selection1D 流是否与数据着色器兼容。

这段代码模拟了我的意思:

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我都会得到一个由所选点的索引组合而成的矩阵。使用 调用 Datashader 绘图后datashade(Overlay),random_points 和 selected_box 之间的交互中断,因此我不确定此流是否与 datashader 兼容,或者我使用流的方式是否错误!

这就是激发我的想法的原因:http: //holoviews.org/reference/apps/bokeh/selection_stream.html#bokeh-gallery-selection-stream

4

1 回答 1

0

查看可能性的有用示例。现在我知道没有必要从绘图中提取数据......我可以使用动态地图和流来绘制另一个绘图,无论是通过边界还是 selection1D。

于 2019-08-29T19:02:16.600 回答