python给散点图的点加名称_如何在散点图中添加最适合的直线
您可以使用np.polyfit()和np.poly1d()。使用相同的x值估计一次多项式,并添加到由.scatter()图创建的ax对象中。举个例子:import numpy as np
2005 2015
0 18882 21979
1 1161 1044
2 482 558
3 2105 2471
4 427 1467
5 2688 2964
6 1806 1865
7 711 738
8 928 1096
9 1084 1309
10 854 901
11 827 1210
12 5034 6253
估计一次多项式:z = np.polyfit(x=df.loc[:, 2005], y=df.loc[:, 2015], deg=1)
p = np.poly1d(z)
df['trendline'] = p(df.loc[:, 2005])
2005 2015 trendline
0 18882 21979 21989.829486
1 1161 1044 1418.214712
2 482 558 629.990208
3 2105 2471 2514.067336
4 427 1467 566.142863
5 2688 2964 3190.849200
6 1806 1865 2166.969948
7 711 738 895.827339
8 928 1096 1147.734139
9 1084 1309 1328.828428
10 854 901 1061.830437
11 827 1210 1030.487195
12 5034 6253 5914.228708
和情节:ax = df.plot.scatter(x=2005, y=2015)
df.set_index(2005, inplace=True)
df.trendline.sort_index(ascending=False).plot(ax=ax)
plt.gca().invert_xaxis()
得到:
还提供了直线方程:'y={0:.2f} x + {1:.2f}'.format(z[0],z[1])
y=1.16 x + 70.46