在 Altair 分层图中设置颜色

Setting Colors in Altair Layered Chart

类似,我使用的是分层图表,我喜欢设置明确的颜色。不知何故,当我使用答案中的解决方案时,我的颜色总是变成一些任意颜色。我想知道,如果有人知道,为什么会发生这种情况以及如何强制 altair 使用颜色数组中给定的颜色。

这里是一个测试例子:

import altair as alt
from vega_datasets import data

source = data.movies()
colors = ['#170c3b', '#fa8d0b']


plot = alt.Chart(source).mark_line().encode(
    x=alt.X("IMDB_Rating", bin=True),
    y=alt.Y(
        alt.repeat("layer"), aggregate="mean", title="Mean of US and Worldwide Gross"
    ),
    color=alt.datum(alt.repeat("layer")),
).repeat(
    layer=["US_Gross", "Worldwide_Gross"]
).configure_range(
        category=alt.RangeScheme(scheme=colors)
)

plot.show()

这里是数组中的颜色:

#170c3b #fa8d0b

这里是改变颜色的图:

category=alt.RangeScheme(scheme=colors) 应该是 category=alt.RangeScheme(colors)

import altair as alt
from vega_datasets import data

source = data.movies()
colors = ['#170c3b', '#fa8d0b']


plot = alt.Chart(source).mark_line().encode(
    x=alt.X("IMDB_Rating", bin=True),
    y=alt.Y(
        alt.repeat("layer"), aggregate="mean", title="Mean of US and Worldwide Gross"
    ),
    color=alt.datum(alt.repeat("layer")),
).repeat(
    layer=["US_Gross", "Worldwide_Gross"]
).configure_range(
        category=alt.RangeScheme(colors)
)

plot

产量: