在 altair 中更改连接图表(两个条形图)中条形的颜色

change color of bars in a concated chart(two bar chart) in altair

我有两个垂直堆叠的条形图。 我使用打击代码来改变它们的颜色。

    alt.Color('variable', domain=['a','b','c'],range=['#for_a','#for_b','#for_c']

问题是,当我为其中一个设置颜色时,其他图表消失,或者当为两个设置颜色时(当我为两个设置域和范围时),一个颜色会影响另一个条。怎么解决?

chart_a = alt.Chart(dfA).mark_bar().encode(
    alt.X('monthdate(date):O'),
    alt.Y('value'),
    alt.Color('variable',
             scale=alt.Scale(domain=['a','b'],
                            range=['green','yellow'])
             )


chart_b =alt.Chart(dfB).mark_bar().encode(
    alt.X('monthdate(date):O'),
    alt.Y('value'),
    alt.Color('variable',
              scale=alt.Scale(domain=['c','d','e','f'],
                             range=['#ffbb9e','#992e00','#9ecdff','#005799']),
             )
)
chart_a & chart_b

默认情况下,Altair 在串联图表之间共享比例。要更改此设置,您可以使用 Scale and Guide Resolution.

中介绍的工具

在你的情况下,听起来你想要独立的色标:

(chart_a & chart_b).resolve_scale(color='independent')