在与真实数据相同的图中绘制多项式回归 [英] plotting polynomial regression in same plot as the real data

查看:35
本文介绍了在与真实数据相同的图中绘制多项式回归的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have some snippets of code that read two csvs and plot them using matplotlib.pyplot and perform polynomial regression on the same two csvs. What I want to be able to do is plot both the data and my polynomial regression on the same graph.

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

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

and my second piece of code performs simply polynomial regression

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

Can anybody help me plot the results of this 5th order polynomail regression in the same plot as the original data. Thanks GTPE

修改

tcaswell提供的代码非常有效.我唯一的问题是为什么多项式在某些地方这么有角度.这是我的示例图片:

Code provided by tcaswell works perfectly. My only question is why does the polynomial come out so angular in places. Here is my example image:

推荐答案

只需再次调用 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()

可以在

An alternate method using multiple arguements to plot can be seen in the np.polyfit documentation.

这篇关于在与真实数据相同的图中绘制多项式回归的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆