Python 创建一个分层线图,默认情况下高亮显示几个选项,然后基于鼠标悬停高亮显示,并使每隔一条线变为灰色

Python 创建一个分层线图,默认情况下高亮显示几个选项,然后基于鼠标悬停高亮显示,并使每隔一条线变为灰色,python,data-visualization,altair,Python,Data Visualization,Altair,我想突出显示鼠标悬停的那条线。除此之外,我还想在没有用户通过鼠标进行交互时显示一些彩色线条。但是当用户开始交互时,我希望这些线变成灰色 到目前为止,在Altair/Vega Lite中是否可能 我已经接近了,使用分层技术,我突出显示所有选中的线,我也能够显示一些默认的颜色线。我没能做到的是那些最初的彩色线条变灰了- df=pd.DataFrame({'time':[1,2,3,1,2,3,1,2,3,1,2,3],'fruit':['apple','apple','apple','apple',

我想突出显示鼠标悬停的那条线。除此之外,我还想在没有用户通过鼠标进行交互时显示一些彩色线条。但是当用户开始交互时,我希望这些线变成灰色

到目前为止,在Altair/Vega Lite中是否可能

我已经接近了,使用分层技术,我突出显示所有选中的线,我也能够显示一些默认的颜色线。我没能做到的是那些最初的彩色线条变灰了-

df=pd.DataFrame({'time':[1,2,3,1,2,3,1,2,3,1,2,3],'fruit':['apple','apple','apple','apple','apple','orange','orange','orange','peach','peach','香蕉','banana香蕉','mango','mango','price':[4,8,12,1,2,4,5,7,9,1,2,3,4,10,15])
highlight=alt.selection\u single(on='mouseover',fields=['fruit'],nearest=True,空='none')
base=alt.Chart(df).标记线().编码(
x='time:O',
y='price:Q',
“水果”,
颜色=alt.value(“浅灰色”)
)
背景=基础。标记线()。编码(
color=alt.condition(alt.datum.fruit=='mango',alt.value('green'),alt.value('yellow'))
).transform_过滤器({'thatfield':'fruit','oneOf':['apple','mango']})
#中间地带=基准。标记线()。编码(
#color=alt.condition(高亮显示、alt.value('red')、alt.value('lightgrey'))
# )
前景=基础。标记线()。编码(
color=alt.value('red')
).transform_过滤器(高亮显示)
点=基准。标记圆()。编码(
不透明度=alt.value(0)
).添加所选内容(
突出
)
点+基础+背景+前景
当鼠标位于区域外时,它看起来很好-

当鼠标靠近一条线时,它会高亮显示该线,但问题是默认线不会变成灰色-

为了实现这一点,我尝试使用中间地带(想法是,无论选择什么,都是红色,否则是灰色,叠加在默认值上),您可以在代码中看到注释,但由于它是在背景之上分层的,默认颜色从一开始就被隐藏并变成灰色。

有什么建议吗