在Altair中更改简明图表(两个条形图)中条形的颜色

时间:2020-05-22 15:22:50

标签: python 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

1 个答案:

答案 0 :(得分:1)

Altair默认在串联图表之间共享比例。要更改此设置,可以使用Scale and Guide Resolution中介绍的工具。

对于您来说,这听起来像您想要独立的色阶:

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