gpt4 book ai didi

python - Seaborn Lineplot 显示自定义中心线而不是均值

转载 作者:行者123 更新时间:2023-12-04 04:18:44 24 4
gpt4 key购买 nike

我有一个数据集,每个时间步包含三个值:一次平均值以及上下误差界限。

name,year,area
test,2017,1.0376800009967053 #mean
test,2017,0.09936810445983806 #lower bound
test,2017,2.118230806622908 #upper bound and so on ...
test,2018,1.0
test,2018,0.13705391957353763
test,2018,2.1881023056535183
test,2019,1.2928531655977922
test,2019,0.17400072775054737
test,2019,3.016064939443665

我想绘制数据,以便在上限和下限之间得到一个阴影区域,并在中间有一条线,它遵循数据集中的平均值。

我试过 seaborn.lineplot( https://seaborn.pydata.org/examples/errorband_lineplots.html )但是它计算树值的平均值,因此该线不是实际平均值应该在的位置。任何人有一些想法?是否可以改变seaborn计算中心线的方式? (例如中位数)

最佳答案

您可以使用seaborn.lineplotestimator 关键字。在documentation你会发现:

estimator : name of pandas method or callable or None, optional

Method for aggregating across multiple observations of the y variable at the same x level. If None, all observations will be drawn.

estimator 的默认值为 mean,这解释了您在问题中描述的观察结果。因此,您可以定义一个 lambda 函数,它始终选择同一 year 的三个值中的第一个值。

lambda x: x[0]

使用

import seaborn as sns
sns.lineplot(x='year', y='area', data=df, estimator=lambda x: x[0], marker='o')

给出你想要的情节。

enter image description here

如果您想使用中位数,请在import numpy as np 之前使用estimator=np.median

关于python - Seaborn Lineplot 显示自定义中心线而不是均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59987969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com