首页 > 解决方案 > 如何向此数据框添加趋势线(Python)

问题描述

我想知道如何在条形图中添加趋势线(或最佳拟合线)。我试过搜索,但发现自己很困惑。这是我用来创建条形图的代码:

    dfY = pd.DataFrame(data={"Year":dataYVote['Year'], "Vote": dataYVote['Vote']})
    year_list = []
    avg_votes = []
    for year in np.unique(dfY["Year"]):
        year_list.append(year)
        avg_votes.append(dfY.loc[dfY["Year"]==year, "Vote"].mean())
    
    plt.bar(year_list, avg_votes, width = 0.5)
    plt.xlabel('Year')
    plt.ylabel('Amount of Votes')
    plt.title('Average Amount of Votes for Each Year')
    plt.show() 

任何帮助深表感谢 :)

标签: pythondataframematplotlibtrendline

解决方案


您可以使用numpy.polyfit最小化平方误差并返回梯度和截距的 a。

import numpy as np

slope, intercept = np.polyfit(x_data, y_data, 1) #deg of 1 for straight line
plt.plot(x, slope*x + intercept)

推荐阅读