python - 如何用seaborn绘制曲线的平均值?

标签 python pandas matplotlib

我想绘制一些点的平均值及其置信区间。我正在使用seaborn。我尝试使用 regplot、lmplot,但它们都不起作用。这是我的程序:

import pandas as pd
from matplotlib import pyplot as plt
import seaborn as sns
sns.set_style("darkgrid")
sns.set(color_codes=True)

df = pd.read_csv("data.csv")
print(df["a"])
sns.lineplot(y=df.a, x=df.index , data=df)
plt.ylabel("R")
plt.xlabel("T")
plt.show()

img

我的目标是得到图中的红线。 这是保存在 csv Fila 中的简单数据框

index     a
0      -0.120
1      -0.530
2      -0.250
3      -0.330
4      -0.560
5      -0.260
6       0.018
7       0.040
8      -0.460
9      -0.690
10     -0.130
11     -0.270
12     -0.080
13     -0.430
14     -0.170
15     -0.500
16     -0.690
17     -0.060
18     -0.200
19     -0.610
20     -0.370
21      0.090
22      0.190
23     -0.010
24      0.110
25     -0.250
26     -0.210
27     -0.160
28     -0.320
29      0.130
        ...  
2501    0.760
2502    0.690
2503    0.680
2504    0.750
2505    0.560
2506    0.570
2507    0.670
2508    0.800
2509    0.630
2510    0.570
2511    0.780
2512    0.800
2513    0.800

最佳答案

Mean 是一个聚合函数。它获取一些值并将它们聚合为一个值。
在您的情况下,由于每个索引只有一个值,平均聚合将为孔数据集输出单个值,当然无法绘制单个值。 因此,Seaborn 库仅在需要聚合每个索引的几个值时才绘制一条平均线 在这种情况下Seaborn还会为您提供相应的置信区间。 有效命令的示例:

数据集作为图片附加

Dataset

调用 sns.lineplot(y='Flights', x='Week' , data=df)

Seaborn 必须每周聚合一些值才能绘制数据。默认聚合方法是“均值”,因此此聚合将产生具有置信区间的平均线。

您可以选择Pandas提供的任何Series聚合方法,也可以编写自己的方法

关于python - 如何用seaborn绘制曲线的平均值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58472452/

相关文章:

python - 在 Python 中数到 10 亿的最快方法

python - 设置列表值的更好方法

python - 在 Python 中从字符串中提取多个数字

python - 如何显示我的 PCA 绘图?

Python + OpenCV + Pytesseract 建议

python - Django 在 DATABASES 中设置 TIME_ZONE 对 'date' 查找无效

python - Order Dataframe Index 基于第二个 Dataframe

python - 使用python将csv分割成小csv

python - 如何使用 Pandas 和离散轴绘制 hexbin? (或者,任何基于颜色的绘图)

python - matplotlib.pyplot 如何在同一图中命名不同的线?