在 Holoviews 中以编程方式定义“redim.range”

Programmatically defining `redim.range` in Holoviews

我希望能够根据 kdim 的变量名以编程方式更改 DynamicMap 的范围。例如:

frequencies = [0.5, 0.75, 1.0, 1.25]

def sine_curve(phase, freq):
    xvals = [0.1* i for i in range(100)]
    return hv.Curve((xvals, [np.sin(phase+freq*x) for x in xvals]))

dmap = hv.DynamicMap(sine_curve, kdims=['phase', 'frequency'])
dmap.redim.range(phase=(0.5,1)).redim.range(frequency=(0.5,1.25))

我想做这样的事情:

label = 'frequency'
dmap = hv.DynamicMap(sine_curve, kdims=['phase', label])
dmap.redim.range(phase=(0.5,1)).redim.range(label=(0.5,1.25))

有正确的方法吗?

要以编程方式在 Python 中定义关键字参数,您可以简单地创建一个字典并将其解压缩,例如在您的示例中,它看起来像这样:

dmap.redim.range(**{'phase': (0.5, 1), label: (0.5, 1.25)})