python - Altair 将选择添加到分层图表
问题描述
我有下面的代码。但是“选择”并没有按预期工作。当一个点被选中时,其他线被取消选中。但所选线的点也会隐藏/消失。
我一定做错了什么。这是将选择添加到分层图表的正确方法吗?
import altair as alt
from vega_datasets import data
source = data.stocks()
selection1 = alt.selection_single()
line = alt.Chart(source).mark_line().encode(
x='date',
y='price',
#color= 'symbol',
color=alt.condition(selection1, 'symbol', alt.value('grey')),
opacity=alt.condition(selection1, alt.value(0.8), alt.value(0.1)),
)
point = line.mark_point(size = 40, fill='white')
alt.layer(line, point).add_selection(selection1)
解决方案
默认情况下,选择只选择与您单击的标记直接关联的数据。如果您希望它应用于更大的数据集,您可以指定fields
或encodings
。在您的情况下,听起来您希望它适用于所有具有相同的数据symbol
,因此您可以这样做:
selection1 = alt.selection_single(fields=['symbol'])
或者,由于您的符号在所有情况下都映射到颜色,因此您可以这样做:
selection1 = alt.selection_single(encodings=['color'])
推荐阅读
- c# - 要在文本框中显示的多个复选框选择
- java - 下载文件浏览器进度:Angular 12、Spring Boot
- javascript - 在javascript和角度中向日期添加秒的地方
- javascript - 在 vaadin 14 中将数据从 java 传递到 javascript 时 element.$server 未定义
- azure - Azure 集成服务中的文件传输
- android-studio - 无法启动守护进程 - Android Studio Gradle Sync 错误
- python - 为什么输入为 4 时乘积为 24?
- aframe - 我可以在框架中插入 360 度全景照片并与视频和其他工作人员一起工作吗?
- python-3.x - 替换字符串中的特定“var”
- django - Wagtail 根页面不呈现正文内容