分层图表中每个图表对应的不同颜色?

时间:2020-06-18 08:27:23

标签: altair

为使图表的外观类似于Altair文档中提供的Simple Stacked Area Chart,我尝试制作分层的图表 区域图,为每个组成图的数据编码不同的颜色。

以下是用于生成图表的pandas数据框的摘要:

df.head():
    date        currently_active total_recovered total_cases
0   2020-01-27     1               0               1
1   2020-01-28     1               0               1
2   2020-01-29     1               0               1
3   2020-01-30     1               0               1
4   2020-01-31     1               0               1
df.dtypes:
date                datetime64[ns]
currently_active             int64
total_recovered              int64
total_cases                  int64
dtype: object

这是我用来绘制分层面积图的代码:

area = alt.Chart(df).configure_area(color='blue').mark_area(opacity=0.5).encode(
    x='monthdate(date):T',
    y='total_cases:Q'
)

area2 = alt.Chart(df).configure_area(color='red').mark_area(opacity=0.5).encode(
    x='monthdate(date):T',
    y='currently_active:Q'
)

area + area2

以上返回此:

'ValueError: Objects with "config" attribute cannot be used within LayerChart. Consider defining the config attribute in the LayerChart object instead.'

谢谢!请让我知道如何进一步澄清该问题。

1 个答案:

答案 0 :(得分:0)

您不能在要分层的图中使用 configure 属性。您需要在最终分层图上设置配置,但在您的情况下,您希望对每个图表应用不同的颜色,这可以通过在 color 中使用 mark_area 更容易实现,如下:

area = alt.Chart(df).mark_area(opacity=0.5, color='blue').encode(
    x='monthdate(date):T',
    y='total_cases:Q'
)

area2 = alt.Chart(df).mark_area(opacity=0.5, color='red').encode(
    x='monthdate(date):T',
    y='currently_active:Q'
)

area + area2