在 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()])

目标输出

enter image description here

解决方法

如果我正确理解问题,使用 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()])