Select altair 中的空栏
Select empty bar in altair
是否可以 select 使用 altair 单击图表中的空条?
例如:
selection = alt.selection_single(fields=['x'])
ch1 = alt.Chart(ds2).mark_bar().encode(
x='y:Q',
y='x:O',
color=alt.condition(
selection,
alt.value('#011B56'),
alt.value('lightgray'))
).add_selection(selection).properties(height=200)
在这里您可以看到,现在选择了第三个栏(从上面)。我希望能够选择第二个并在另一个图表中进一步进行其他计算。但是,如果我现在单击,将识别出我正在单击图表的免费 space。另一方面,这会触发 selection 的清除事件。
有没有办法select空栏?
谢谢!
我创建了一个 vega-lite 示例,即使没有可见的条形图,您也可以在 y 轴上 select。创建一个 x 轴覆盖整个比例尺的层,并使用 opacity: 0
使该层的条形图透明。由于第二层的不透明度不可见,您仍然可以在 y 轴的空 space 上执行 selections。下面是片段和 editor:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": "container",
"height": 250,
"data": {
"values": [
{"Origin": "USA", "value": 100},
{"Origin": "Japan", "value": 0},
{"Origin": "Europe", "value": 50},
{"Origin": "India", "value": 100}
]
},
"layer": [
{
"mark": "bar",
"encoding": {
"y": {"field": "Origin"},
"x": {"field": "value", "type": "quantitative"}
}
},
{
"params": [
{
"select": {"type": "point", "fields": ["Origin"]},
"name": "mySelection"
}
],
"transform": [{"calculate": "1", "as": "barSel"}],
"mark": {"type": "bar", "opacity": 0},
"encoding": {
"y": {"field": "Origin"},
"x": {
"field": "barSel",
"type": "quantitative",
"scale": {"domain": [0, 1]},
"axis": null
}
}
}
],
"resolve": {"scale": {"x": "independent"}, "axis": {"x": "independent"}}
}
是否可以 select 使用 altair 单击图表中的空条?
例如:
selection = alt.selection_single(fields=['x'])
ch1 = alt.Chart(ds2).mark_bar().encode(
x='y:Q',
y='x:O',
color=alt.condition(
selection,
alt.value('#011B56'),
alt.value('lightgray'))
).add_selection(selection).properties(height=200)
在这里您可以看到,现在选择了第三个栏(从上面)。我希望能够选择第二个并在另一个图表中进一步进行其他计算。但是,如果我现在单击,将识别出我正在单击图表的免费 space。另一方面,这会触发 selection 的清除事件。
有没有办法select空栏?
谢谢!
我创建了一个 vega-lite 示例,即使没有可见的条形图,您也可以在 y 轴上 select。创建一个 x 轴覆盖整个比例尺的层,并使用 opacity: 0
使该层的条形图透明。由于第二层的不透明度不可见,您仍然可以在 y 轴的空 space 上执行 selections。下面是片段和 editor:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"width": "container",
"height": 250,
"data": {
"values": [
{"Origin": "USA", "value": 100},
{"Origin": "Japan", "value": 0},
{"Origin": "Europe", "value": 50},
{"Origin": "India", "value": 100}
]
},
"layer": [
{
"mark": "bar",
"encoding": {
"y": {"field": "Origin"},
"x": {"field": "value", "type": "quantitative"}
}
},
{
"params": [
{
"select": {"type": "point", "fields": ["Origin"]},
"name": "mySelection"
}
],
"transform": [{"calculate": "1", "as": "barSel"}],
"mark": {"type": "bar", "opacity": 0},
"encoding": {
"y": {"field": "Origin"},
"x": {
"field": "barSel",
"type": "quantitative",
"scale": {"domain": [0, 1]},
"axis": null
}
}
}
],
"resolve": {"scale": {"x": "independent"}, "axis": {"x": "independent"}}
}