如何使用seaborn.objects创建线+带状图?

问题描述 投票:0回答:1

我想创建一个类似于 使用 ggplot2 创建的线+带状图

geom_line + geom_ribbon
:

line and ribbon plot

为此,我想使用新的

seaborn.objects
界面,但即使
Plot
函数确实接受
ymin
ymax
,我不知道如何有效地使用它们。我正在尝试
.add(so.Line()).add(so.Area())
的几种组合,但出现各种错误或不是我想要的结果。

样本数据:

import numpy as np
import polars as pl

pl.DataFrame({"value": np.random.randn(10), "std": 0.2 * np.abs(np.random.randn(10))})

使用 matplotlib 的示例输出

Axes.fill_between
:

enter image description here

python seaborn seaborn-objects
1个回答
2
投票

你想要

seaborn.objects.Band
:

import numpy as np
import pandas as pd
import seaborn.objects as so

df = pd.DataFrame({"value": np.random.randn(10), "std": 0.2 * np.abs(np.random.randn(10))})

(
    so.Plot(
        x=df.index,
        y=df["value"],
        ymin=df.eval("value - std"),
        ymax=df.eval("value + std")
    )
    .add(so.Line())
    .add(so.Band())
)

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.