3

我有一些代码片段可以读取两个 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

谁能帮我将这个五阶多项式回归的结果绘制在与原始数据相同的图中。谢谢 GTPE

编辑

tcaswell 提供的代码完美运行。我唯一的问题是为什么多项式在某些地方会出现如此角度。这是我的示例图像:

在此处输入图像描述

4

1 回答 1

6

只需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()

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

于 2013-10-04T22:15:13.330 回答