Mute/deactivate Holoviews Overlay 中 default/programmatically 的某些数据系列

Mute/deactivate certain data series by default/programmatically in Holoviews Overlay

我在 Jupyter 笔记本中使用 hv.Overlayhv.Curve 在同一轴上绘制多条(许多)曲线。在生成的图中,我主要对一些曲线感兴趣。为了突出显示,我可以通过单击相应的图例项(如下图所示)来停用所有曲线,但只有少数曲线。

问题:有没有办法以编程方式执行此操作,以便生成的绘图默认停用某些数据系列?我在想一些与 hv.Curve(..., active=False) 类似的事情。我不认为较浅的颜色是一种选择,因为我仍然希望有可能激活任何给定的数据系列。

import holoviews as hv
import pandas as pd
import numpy as np

np.random.seed(2)
df = pd.DataFrame({"x": sorted(list(range(9)) * 3),
                   "key": ["a", "b", "c"] * 9,
                   "val": np.random.randn(27)})

hv.Overlay([hv.Curve(df.query("key == @key"), "x", "val", label=key) 
            for key in df.key.unique()])

目标输出:

如果我对问题的理解正确,使用 muted 选项应该可以解决问题:

hv.Overlay([hv.Curve(df.query("key == @key"), "x", "val",label=key).opts(muted = False if key == "a" else True) 
        for key in df.key.unique()])