Altair 将选择添加到分层图表
Altair add selection to Layered chart
我有下面的代码。但是 'selection' 没有按预期工作。选择一个点后,将取消选择其他线。但是所选行的点数也是 hide/disappear.
我一定是做错了什么。这是向分层图表添加选择的正确方法吗?
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'])
我有下面的代码。但是 'selection' 没有按预期工作。选择一个点后,将取消选择其他线。但是所选行的点数也是 hide/disappear.
我一定是做错了什么。这是向分层图表添加选择的正确方法吗?
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'])