首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python中数组的绘图平均值

python中数组的绘图平均值
EN

Stack Overflow用户
提问于 2018-07-12 05:34:52
回答 1查看 7.5K关注 0票数 2

我有一个温度随时间变化的二维数组。大约有7500个x值和同样多的对应y值(所以每个x对应一个y值)。

它看起来是这样的:

中间的蓝线是我尝试绘制一条曲线图失败的结果,这条曲线图将表示我的数据的平均值。代码:

import numpy as np
import matplotlib.pyplot as plt
data=np.genfromtxt("data.csv")
temp_av=[np.mean(data[1])]*len(data[0])
plt.figure()
plt.subplot(111)
plt.scatter(data[0],data[1])
plt.plot(data[0],temp_av)
plt.show()

然而,我需要的是一条曲线,它将随着温度的上升而变化。基本上是位于数据点中间的一条线。

我在谷歌上搜索了一些解决方案,但我找到的所有建议都是如何在一个x有多个y值的情况下计算平均值。我知道如何计算,但在这种情况下没有帮助。

我的下一个想法是使用循环来计算每2个邻近点的平均值。但我不确定如何做得最好,如果没有更好的解决方案。

另外,我知道我需要的是计算另一个数组。绘图仅用于表示。

EN

回答 1

Stack Overflow用户

发布于 2018-07-12 06:11:34

如果我理解正确的话,你要画的是一条趋势线。你可以通过使用numpy函数'polyfit‘来实现。如果这就是您正在寻找的,请尝试对您的代码进行以下小的修改

import numpy as np
import matplotlib.pyplot as plt
data=np.genfromtxt("data.csv")
plt.figure()
plt.subplot(111)
plt.scatter(data[0],data[1])

pfit = np.polyfit(data[0], data[1], 1)
trend_line_model = np.poly1d(pfit)

plt.plot(data[0], trend_line_model(data[0]), "m--") 
plt.show()

这将以虚线洋红色绘制趋势线

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51294486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档