график доверительного интервала altair

Я надеюсь использовать altair для создания графика, аналогичного прилагаемому рисунку, который построен с использованием matplotlib. По сути, это линия, отображающая среднее значение и доверительный интервал.

введите описание изображения здесь

Мой фрейм данных выглядит так.

dfr = pd.DataFrame(list(zip(mean, lower, upper)),
                       columns=["Mean", "Lower", "Upper"],
                       index=pd.RangeIndex(46, name="x"))

Есть идеи, как я могу этого добиться? Я не могу понять синтаксис с помощью altair. Спасибо


person Sam Zhu    schedule 23.09.2020    source источник
comment
Включите рис как рис, а не как ссылку.   -  person zabop    schedule 23.09.2020


Ответы (1)


Вы можете сделать это, наложив линейный график и график площади. Например:

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

np.random.seed(9)
mean = np.random.randn(46).cumsum()
lower = mean - 2
upper = mean + 2

dfr = pd.DataFrame(list(zip(mean, lower, upper)),
                       columns=["Mean", "Lower", "Upper"],
                       index=pd.RangeIndex(46, name="x"))

line = alt.Chart(dfr.reset_index()).mark_line().encode(
    x='x',
    y='Mean'
)

band = line.mark_area(opacity=0.5).encode(
    x='x',
    y='Lower',
    y2='Upper'
)

band + line

введите описание изображения здесь

person jakevdp    schedule 23.09.2020
comment
Большое спасибо! - person Sam Zhu; 25.09.2020