带有水平滚动条的 Holoviews 绘图?

Holoviews plot with horizontal scrollbar?

我想实现一个带滚动条的全息图 time/x 轴。

详细来说,我想绘制一个长心电图信号(20 分钟)并能够显示一帧,例如10 秒,可以滚动整个信号。

有没有办法实现这个?谢谢!

Example

您至少应该了解两个选项。

1.选项

启用鼠标滚动。 为此,您必须为您的模型激活工具 xwheel_pan

看这个非常基本的例子:

import numpy as np
import holoviews as hv
hv.extension('bokeh')

x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
scatter = hv.Scatter((x, y), label='sin(x)').opts(
        tools=['xwheel_pan'], 
        active_tools=['xwheel_pan']
    )
scatter

在此示例中,该工具也默认激活。使用鼠标滚轮将导致这样的操作。

2。选项

添加第二个数字和一个RangeTool

这个例子需要更多的代码行:

import numpy as np
import holoviews as hv
from holoviews import opts
from holoviews.plotting.links import RangeToolLink
hv.extension('bokeh')

x = np.linspace(0, 4*np.pi, 100)
y = np.sin(x)
scatter = hv.Scatter((x, y), label='sin(x)').opts(width=300, height=300)
selection = hv.Scatter((x, y)).opts(width=300, height=100, yaxis=None, default_tools=[])

RangeToolLink(selection, scatter)
layout = (scatter + selection).cols(1)
layout.opts(opts.Layout(shared_axes=False, merge_tools=False))