我在下面有这张图表,看起来不错。 但是,由于数据框中没有可用数据,因此省略了X轴上的类别“ 2”。
在Altair中最好的方法是什么? 我希望“ 2”提前期显示为空白/列(与列相同的宽度)。
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
答案 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]
)
),
)
或在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',
)