首页 > 解决方案 > altair 置信区间图

问题描述

我希望使用 altair 创建一个类似于附图的图,该图是使用 matplotlib 绘制的。基本上,一条绘制均值的线和一个置信区间。

在此处输入图像描述

我的数据框看起来像这样。

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

知道如何实现这一目标吗?我无法弄清楚 altair 的语法。谢谢

标签: pythonplotaltair

解决方案


您可以通过将线图和面积图分层来做到这一点。例如:

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

在此处输入图像描述


推荐阅读