坐标系未在全息视图的 DynamicMap 中更新

Coordinate system not updating in holoviews' DynamicMap

我尝试在 holoview 中实现交互式直方图,您可以在其中更改上限(因此我可以决定是否要查看异常值)。 我正在使用散景作为后端。

但不幸的是,调整滑动条只会重新计算直方图,不会调整 x 和 y 坐标,因此您必须手动缩放 in/out 才能看到变化。这是正常行为吗?

我给你一个最小的例子:

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

a=np.array([1,1,11,1,1,1,1,1,1,1,2,2,2,2,2,5,5,5,30])
def hist_creater(upper_limit):
    frequencies, edges=np.histogram(a,range=(0,upper_limit),bins=10)
    return hv.Histogram((edges, frequencies))
    
dmap=hv.DynamicMap(hist_creater,kdims=["upper_bound_for_weight"]).redim.range(upper_bound_for_weight=(10,100))
dmap.opts(width=300)          

请注意,如果您 select 滚动缩放工具,您已经可以缩放 Bokeh 中的轴以查看您喜欢的任何区域。因此,您不一定需要为此目的单独的小部件,但也许我误解了这里的目标。

在任何情况下,如果您希望为该 DynamicMap 中的每个新帧重新计算轴边界,只需指定 dmap.opts(width=300, framewise=True)。默认情况下,它会尝试保持您的初始范围不变,以便您可以看到数据的变化,但 framewise=True 告诉它在每次数据变化时自动调整范围。