在多个图表中选择Altair

时间:2018-10-14 15:35:15

标签: python vega vega-lite altair

我有一个数据列,其列为:“性别”,“城市”,“年龄”,“时间”,“值”。

我需要从“性别”和“城市”中选择一个元素,并从“年龄”列中选择多个元素,然后制作交互式折线图,其中x轴为“时间”,图例为y的“值”。

我为每个“性别”,“城市”和“年龄”列添加selection_multi()以分隔mark_rect(例如y ='sex:O',无x轴)。

我希望mark_line()能够基于selection_multi()拖行。例如,如果我选择:

  1. “性别”中的“男性”
  2. “城市”中的“城市”
  3. 'li'的
  4. '20s'和'40s'

然后2行:

  1. 男性-城市-20多岁
  2. 男性-城市-40多岁

被绘制。

但是,选择不符合我的预期。例如。如果我从“性别” mark_rect()中选择“男性”,从“城市” mark_rect()中选择“城市”,则在“性别” mark_rect()中自动选择“女性”。即使数据框中有带有“ Male”和“ Urban”的行,也无法选择“ Male”和“ Urban”。

我在做什么错?

Dashboard should look like this

result = {
       name: 'Workflow',
       steps:[
          { name: 'First Step',
            assignee: '2cb56eadab3fbdc46dcb896e2ec68f33',
            detail: {
                fullname: 'blablabla',
                avatar: 'blablabla'
            }
          },
          {
            name: 'Second Step',
            assignee: '1h374jab3fbdc46wer896e2ec687as',
            detail: {
                fullname: 'blablabla',
                avatar: 'blablabla'
            }
          }
        ],
       __v: 0 
    }

1 个答案:

答案 0 :(得分:0)

您的问题是您有一个选择器,该选择器在'sex''urb''age'上触发。根据您的描述,您似乎想要多个独立触发的选择器。

尝试创建三个选择器,例如

selector_sex = alt.selection_single(fields=['sex'])
selector_urb = alt.selection_single(fields=['urb'])
selector_age = alt.selection_multi(fields=['age'])

并在仪表板中的各个位置使用它们。