首页 > 解决方案 > 带有 altair 的定量 x 轴的堆栈面积图

问题描述

当 x 轴为时间时,altair 中的面积图会自动堆叠。但是当x属于定量数据类型时,区域不会堆叠。

import pandas as pd
import numpy as np
import string
import altair as alt

np.random.seed(394378)
n_series = 3
series_names = list(string.ascii_lowercase)[:n_series]
x_range = range(0, 21)
df = pd.DataFrame({"Series": np.tile(series_names, len(x_range)),
                   "X": np.repeat(x_range, n_series),
                   "Y": np.random.poisson(lam = 10, size = len(x_range) * n_series)})

alt.Chart(df).\
    mark_area().\
    encode(
        x = "X:Q",
        y = "Y:Q",
        color = "Series:N"
)

(堆叠面积图(非)

如何堆叠区域?

标签: altair

解决方案


您可以通过传递stack=True给 y 编码来做到这一点。例如:

alt.Chart(df).\
    mark_area().\
    encode(
        x = "X:Q",
        y = alt.Y("Y:Q", stack=True),
        color = "Series:N"
)

在此处输入图像描述


推荐阅读