python - 如何用seaborn绘制曲线的平均值?
问题描述
我想绘制一些点的平均值及其置信区间。我正在使用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()
我的目标是得到图中的红线。这是保存在 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
解决方案
均值是一个聚合函数。它获取一些值并将它们聚合为一个。
在您的情况下,由于每个索引只有一个值,因此平均聚合将为孔数据集输出单个值,当然不能绘制单个值。因此,Seaborn 库仅在需要聚合每个索引的几个值时才绘制平均线
。在这种情况下,Seaborn 还会为您提供相应的置信区间。一个可行的命令示例:
数据集作为图片附加
打电话时sns.lineplot(y='Flights', x='Week' , data=df)
Seaborn 必须每周汇总几个值才能绘制数据。默认的聚合方法是“均值”,因此这种聚合将产生具有置信区间的平均线。
您可以选择 Pandas 提供的任何 Series 聚合方法,也可以编写自己的方法
推荐阅读
- git - Git NOT SHOWING # 你的分支在 'origin/master' 之前 1 次提交
- python - Python - 用通用模式替换列表中的条目
- dynamics-crm - MS Dynamics 365 中的解决方案中给出的服务端点的用途是什么?
- javascript - 将函数作为参数传递并调用它 javascript
- php - 教义 findBy 月份和年份
- corda - 一个 Corda 状态可以处理多个合同吗?
- ios - SceneKit:文本节点字体未应用
- json - SimpleJSON 在处理来自 Postmen 的呼叫时返回 null
- java - 在intellij idea中找不到插件
- c# - 将圆弧转换为折线