在与真实数据相同的图中绘制多项式回归

时间:2013-10-04 21:52:32

标签: csv python-2.7 numpy matplotlib

我有一些代码片段可以读取两个csv并使用matplotlib.pyplot绘制它们,并在相同的两个csv上执行多项式回归。我想要做的是在同一图表上绘制数据和我的多项式回归。

import matplotlib.pyplot as plt
import csv
import numpy as np

datax=np.genfromtxt('Delta R.csv')
datay=np.genfromtxt('Example R.csv')


plt.title ('Test graph ')
plt.xlabel('x axis')
plt.ylabel('y axis ')

plt.plot(datax, datay,'o-')

plt.show()

我的第二段代码只执行多项式回归

import matplotlib.pyplot as plt
import csv
import numpy as np

datax=np.genfromtxt('Delta R.csv')
datay=np.genfromtxt('Example R.csv')

z = np.polyfit(datax,datay,5) 

print z

任何人都可以帮我在与原始数据相同的图中绘制这个5阶polynomail回归的结果。谢谢GTPE

修改

tcaswell提供的代码完美无缺。我唯一的问题是为什么多项式在某些地方出现如此棱角分明。这是我的示例图片:

enter image description here

1 个答案:

答案 0 :(得分:5)

再次致电plot

datax=np.genfromtxt('Delta R.csv')
datay=np.genfromtxt('Example R.csv')

z = np.polyfit(datax,datay,5) 
p = np.poly1d(z)

plt.title ('Test graph ')
plt.xlabel('x axis')
plt.ylabel('y axis ')

plt.plot(datax, datay,'o-')
plt.plot(datax, p(datax), '-')

datax_os = np.linspace(np.min(datax), np.max(datax), 1024)
plt.plot(datax_os, f(datax_os)) # 'smoother' line

plt.show()

np.polyfit中可以看到使用plot多个参数的替代方法 文档。