Alt 条件不适用于 choropleth 缺失值 N.A

Alt condition not working for choropleth missing values N.A

我正在使用配色方案 "blues"
绘制等值线图 我想要没有任何数据的县的默认颜色,即 N.A。
默认颜色有十六进制代码:#dbe9f6
我为此使用了 alt 条件,但它不起作用。

这是我的代码:

from altair import Scale,Color

fg = alt.Chart(us_counties).mark_geoshape(
stroke='black',
strokeWidth=0.05
).project(
    type='albersUsa'
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(fdf1, 'fips', ['Pill_per_pop'])
).encode(
    color = alt.condition('datum.Pill_per_pop!==null',Color('Pill_per_pop:Q',scale=Scale(scheme='blues')),alt.value('#dbe9f6'))
).properties(
    width=700,
    height=400
)

我的输出是:

预期输出为:

我不确定为什么,但空值似乎破坏了条件编码。我能够通过使用计算转换将空值转换为负数,然后以此为条件来使其工作:

alt.Chart(us_counties).mark_geoshape(
    stroke='black',
    strokeWidth=0.05
).project(
    type='albersUsa'
).transform_lookup(
    lookup='id',
    from_=alt.LookupData(fdf1, 'fips', ['Pill_per_pop'])
).transform_calculate(
    Pill_per_pop='isValid(datum.Pill_per_pop) ? datum.Pill_per_pop : -1'  
).encode(
    color = alt.condition(
        'datum.Pill_per_pop > 0',
        alt.Color('Pill_per_pop:Q', scale=Scale(scheme='blues')),
        alt.value('#dbe9f6')
    )
).properties(
    width=700,
    height=400
)