【问题标题】:Plot average of an array in python在python中绘制数组的平均值
【发布时间】:2018-07-11 21:34:52
【问题描述】:

我有一个温度随时间变化的二维数组。大约有 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 个相邻点的平均值。但我不确定如何做到最好,也不确定是否有更好的解决方案。

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

【问题讨论】:

标签: python numpy average


【解决方案1】:

如果我不理解正确性,那么您要绘制的是趋势线。你可以通过使用 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()

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

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2021-05-26
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多