Altair条形图-如何显示缺失的类别

时间:2020-02-29 15:53:47

标签: python altair

我在下面有这张图表,看起来不错。 但是,由于数据框中没有可用数据,因此省略了X轴上的类别“ 2”。

在Altair中最好的方法是什么? 我希望“ 2”提前期显示为空白/列(与列相同的宽度)。

enter image description here

import altair as alt
alt.Chart(data).mark_bar().encode(
    x='leadtime:O',
    y='value',
    color='category'
)

数据

leadtime    category    value
1   cat1    1
1   cat2    1
1   cat3    1
1   cat4    2
1   cat5    2
1   cat6    0.5
1   cat7    3
3   cat1    2
3   cat2    3
3   cat3    2
3   cat4    4
3   cat5    5
3   cat6    0.5
3   cat7    6
4   cat1    2
4   cat2    4
4   cat3    2
4   cat4    7
4   cat5    8
4   cat6    8
4   cat7    3

1 个答案:

答案 0 :(得分:3)

您可以通过两种方式执行此操作,或者在y中使用impute transform

alt.Chart(data).mark_bar().encode(
    x='leadtime:O',
    color='category',
    y=alt.Y('value',
      impute=alt.ImputeParams(
        value=0,
        keyvals=[1, 2, 3, 4]
      )
    ),
)

enter image description here

或在x中设置一个明确的scale domain

alt.Chart(data).mark_bar().encode(
    x=alt.X('leadtime:O', scale=alt.Scale(domain=[1, 2, 3, 4])),
    y='value',
    color='category',
)

enter image description here