首页>Program>source

我想在数据图的顶部绘制趋势线.这必须很简单,但我无法弄清楚如何实现。

让我们说我有以下内容:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(np.random.randint(0,100,size=(100, 1)), columns=list('A'))
sns.lineplot(data=df)
ax.set(xlabel="Index",
       ylabel="Variable",
       title="Sample")
plt.show()

结果图为:

我要添加的是趋势线.类似于下面的红线:

我感谢您的任何反馈。

最新回答
  • 1月前
    1 #

    您可以使用滚动平均值执行以下操作:

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    data  = np.random.randint(0,100,size=(100, 1))
    df["rolling_avg"] = df.A.rolling(7).mean().shift(-3)
    sns.lineplot(data=df)
    plt.show()
    

    您还可以做一个回归图来分析如何使用以下方法插值数据:

    ax = sns.regplot(x=df.index, y="A", 
                     data=df,
                     scatter_kws={"s": 10},
                     order=10, 
                     ci=None)
    

  • 1月前
    2 #

    移动平均值是一种方法(我 先想到了,并且已经提出来了。)

    另一种方法是使用多项式拟合.由于您的原始数据中有100点,因此在下面的示例中,我选择了10阶拟合(数据长度的平方根).对原始代码进行一些修改:

    idx = [i for i in range(100)]
    rnd = np.random.randint(0,100,size=100)
    ser = pd.Series(rnd, idx)
    fit = np.polyfit(idx, rnd, 10)
    pf = np.poly1d(fit)
    plt.plot(idx, rnd, 'b', idx, pf(idx), 'r')
    

    此代码提供了如下图:

  • Word 2016:word 2016-如何在"重复节属性"菜单-VBA中隐藏"允许用户添加和删除节"功能?
  • javascript:如何返回相对的HTML表值?