问题描述
我正在 Jupyter 笔记本中使用 hv.Overlay
和 hv.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()])