Pandas 如何在牛郎星图表上组合两个滑块?
我有以下数据帧:Pandas 如何在牛郎星图表上组合两个滑块?,pandas,slider,altair,Pandas,Slider,Altair,我有以下数据帧: num_tra num_ts Year Value 0 0 0 1 100 1 0 0 2 90 2 0 0 3 80 3 0 1 1 90 4 0 1 2 81 5 0 1 3 72 6 1 0 1 81 7 1 0
num_tra num_ts Year Value
0 0 0 1 100
1 0 0 2 90
2 0 0 3 80
3 0 1 1 90
4 0 1 2 81
5 0 1 3 72
6 1 0 1 81
7 1 0 2 73
8 1 0 3 65
9 1 1 1 73
10 1 1 2 66
11 1 1 3 58
12 2 0 1 142
13 2 0 2 160
14 2 0 3 144
15 2 1 1 128
16 2 1 2 144
17 2 1 3 130
基于Altair的多交互示例,我尝试使用两个滑块(在本例中)基于num_tra[0到2]和num_ts[0到1]列的值构建一个图表,但它不起作用
import altair as alt
from vega_datasets import data
base = alt.Chart(df, width=500, height=300).mark_line(color="Red").encode(
x=alt.X('Year:Q'),
y='Value:Q',
tooltip="Value:Q"
)
# Slider filter
tra_slider = alt.binding_range(min=0, max=2, step=1)
ts_slider = alt.binding_range(min=0, max=1, step=1)
slider1 = alt.selection_single(bind=tra_slider, fields=['num_tra'], name="TRA")
slider2 = alt.selection_single(bind=ts_slider, fields=['num_ts'], name="TS")
filter_TRA = base.add_selection(
slider1,slider2
).transform_filter(
slider1,slider2
).properties(title="Sensi_TRA")
filter_TRA
=>TypeError:transform_filter()接受2个位置参数,但给出了3个
一个滑块没有问题,但正如前面提到的,我无法在同一张图表上组合两个或多个滑块
如果您有任何想法,我们将不胜感激。有几种方法可以做到这一点。如果希望按顺序应用过滤器,可以使用两个transform语句:
filter\u TRA=base.add\u选择(
滑块1,滑块2
).transform_过滤器(
滑块1
).transform_过滤器(
滑块2
)
或者,您可以使用单个transforms语句并使用&
或|
运算符分别对滑块值的交点或并集进行过滤:
filter_TRA = base.add_selection(
slider1,slider2
).transform_filter(
slider1 & slider2
)
好的,太好了。那正是我想要的。谢谢