我试图在自动生成的图表上绘制一条最佳拟合线。我的图表目前只是一个简单的散点图。我已经研究过各种解决方案,但是,它们都提供了一种不同的绘图方法的解决方案。
我的代码遍历列表以绘制存储在其中的数据。
我想知道是否有办法用这种方法实现最佳拟合线,或者我是否必须改变它;如果可以解释如何将其改为工作,那将不胜感激。
for x in range (0,len(profits)):
plt.plot([yearofreleaselist[x]], [profits[x]], '-ro')
plt.annotate((filmlist[x]), xy=(yearofreleaselist[x], profits[x]))
oldestfilm = len(yearofreleaselist)
oldestfilm = oldestfilm-1
plt.axis([(int(yearofreleaselist[oldestfilm])-1), (int(yearofreleaselist[0]))+1, 0, (max(profits))+50000000])
plt.ylabel("Profit ($)")
plt.xlabel("Year Of Release")
name = str(textbox1.get())
plt.title("The Profits of " + name.title() + "'s films")
plt.savefig(name+'.png')
text3["text"] = plt.show()
答案 0 :(得分:0)
如果你想要线性最佳拟合,那么:
import numpy as np
import matplotlib.pyplot as plt
plt.plot(yearofreleaselist, np.poly1d(np.polyfit(yearofreleaselist, profits, 1))(yearofreleaselist))