python怎么做回归分析_如何在Python中进行二维回归分析?
这是使用scipy.optimize.curve_fit拟合表面的示例Python代码,它使原始数据生成3D散点图,对错误进行3D散点图绘制,绘制表面图和轮廓图.更改它以使用您自己的数据和功能,您应该已完成.
import numpy, scipy
import scipy.optimize
import matplotlib
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm # to colormap 3D surfaces from blue to red
import matplotlib.pyplot as plt
graphWidth = 800 # units are pixels
graphHeight = 600 # units are pixels
# 3D contour plot lines
numberOfContourLines = 16
def SurfacePlot(equationFunc, data, params):
f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)
matplotlib.pyplot.grid(True)
axes = Axes3D(f)
x_data = data[0]
y_data = data[1]
z_data = data[2]
xModel = numpy.linspace(min(x_data), max(x_data), 20)
yModel = numpy.linspace(min(y_data), max(y_data), 20)
X, Y = numpy.meshgrid(xModel, yModel)
Z = equationFunc(numpy.array([X, Y]), *params)
axes.plot_surface(X, Y, Z, rstride=1, cstride=1, cmap=cm.coolwarm, linewidth=1, antialiased=True)
axes.scatter(x_data, y_data, z_data) # show data along with plotted surface
axes.set_title('Surface Plot (click-drag with mouse)') # add a title for surface plot
axes.set_xlabel('X Data') # X axis data label
axes.set_ylabel('Y Data') # Y axis data label
axes.set_zlabel('Z Data') # Z axis data label
plt.show()
plt.close('all') # clean up after using pyplot or else thaere can be memory and process problems
def ContourPlot(equationFunc, data, params):
f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)
axes = f.add_subplot(111)
x_data = data[0]
y_data = data[1]
z_data = data[2]
xModel = numpy.linspace(min(x_data), max(x_data), 20)
yModel = numpy.linspace(min(y_data), max(y_data), 20)
X, Y = numpy.meshgrid(xModel, yModel)
Z = equationFunc(numpy.array([X, Y]), *params)
axes.plot(x_data, y_data, 'o')
axes.set_title('Contour Plot') # add a title for contour plot
axes.set_xlabel('X Data') # X axis data label
axes.set_ylabel('Y Data') # Y axis data label
CS = matplotlib.pyplot.contour(X, Y, Z, numberOfContourLines, colors='k')
matplotlib.pyplot.clabel(CS, inline=1, fontsize=10) # labels for contours
plt.show()
plt.close('all') # clean up after using pyplot or else thaere can be memory and process problems
def ScatterPlot(data, title):
f = plt.figure(figsize=(graphWidth/100.0, graphHeight/100.0), dpi=100)
matplotlib.pyplot.grid(True)
axes = Axes3D(f)
x_data = data[0]
y_data = data[1]
z_data = data[2]
axes.scatter(x_data, y_data, z_data, depthshade=False, color='k')
axes.set_title(title)
axes.set_xlabel('X Data')
axes.set_ylabel('Y Data')
axes.set_zlabel('Z Data')
plt.show()
plt.close('all') # clean up after using pyplot or else thaere can be memory and process problems
def EquationFunc(data, *params):
p0 = params[0]
p1 = params[1]
return p0 + numpy.sqrt(data[0]) + numpy.cos(data[1] / p1)
if __name__ == "__main__":
# raw data
xData = numpy.array([1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0])
yData = numpy.array([11.0, 12.1, 13.0, 14.1, 15.0, 16.1, 17.0, 18.1, 90.0])
zData = numpy.array([1.1, 2.2, 3.3, 4.4, 5.5, 6.6, 7.7, 8.0, 9.9])
pInitial = (1.0, 1.0)
popt, pcov = scipy.optimize.curve_fit(EquationFunc,(xData,yData),zData, p0=pInitial)
dataForPlotting = [xData, yData, zData]
ScatterPlot([xData, yData, zData], 'Data Scatter Plot (click-drag with mouse)')
SurfacePlot(EquationFunc, [xData, yData, zData], popt)
ContourPlot(EquationFunc, [xData, yData, zData], popt)
absError = zData - EquationFunc((xData,yData), *popt)
ScatterPlot([xData, yData, absError], 'Error Scatter Plot (click-drag with mouse)')
python怎么做回归分析_如何在Python中进行二维回归分析?相关推荐
- python如何做动画_如何在Python中动画动态系统的运动?
假设你有一个4个微分方程,它代表了一个动态系统(推车上的钟摆)的运动,你用来求解这些方程scipy.integrate.odeint持续10秒,间隔0.01秒.在 最后得到尺寸为(1000,4)的解矩 ...
- java 二叉查找树_如何在Java中实现二叉搜索树( binary search tree)?
二叉搜索树或BST是一种流行的数据结构,用于保持元素的顺序.二叉搜索树是二叉树,其中左子节点的值小于或等于父节点,右子节点的值大于或等于父节点.由于它是二叉树,它只能有0,1或2个子节点.二叉搜索树之 ...
- python右对齐 数字_如何在Python中右对齐数值数据?
我有一些数据,我显示在3列格式,形式"键:值键:键:值键:值".这里有一个例子: p: 1 sl: 10 afy: 4 q: 12 lg: 10 kla: 3 r: 0 kl: 1 ...
- python 指定证书验证_如何在python中验证SSL证书?
我需要验证我的自定义CA签署了证书.使用OpenSSL命令行实用程序很容易做到: # Custom CA file: ca-cert.pem # Cert signed by above CA: bo ...
- python隐藏启动台_如何在Python中启动后台进程?
如何在Python中启动后台进程? 我正在尝试将shell脚本移植到更易读的python版本. 原始shell脚本在后台使用"&"启动多个进程(实用程序,监视器等). 如何 ...
- python的loc函数_如何在pandas中使用loc、iloc函数进行数据索引(入门篇)
在数据分析过程中,很多时候我们需要从数据表中提取出我们需要的部分,而这么做的前提是我们需要先索引出这一部分数据.今天我们就来探索一下,如何在pandas中使用loc函数和iloc函数索引数据. 今天我 ...
- python队列怎么用_如何在Python中使用多处理队列? - python
我很难理解多处理队列如何在python上工作以及如何实现它.假设我有两个python模块,它们从共享文件中访问数据,我们将这两个模块称为writer和Reader.我的计划是让读取器和写入器都将请求放 ...
- python字符串筛选输出_如何在Python中过滤字符串列表
Python使用列表数据类型在顺序索引中存储多个数据.它的工作方式类似于其他编程语言的数字数组.filter()方法是Python的一种非常有用的方法.可以使用filter()方法从Python中的任 ...
- python绘图背景透明_如何在 Matplotlib 中更改绘图背景
介绍Matplotlib是Python中使用最广泛的数据可视化库之一.无论是简单还是复杂的可视化项目,它都是大多数人的首选库.在本教程中,我们将研究如何在Matplotlib中更改绘图的背景.导入数据 ...
- python获取当前时间戳_如何在Python中获取当前时间戳?
在Python中可以使用来自模块time.datetime或calendar的函数来获取当前时间戳,代码语句如[import time;ts = time.time() print(ts)]. 在Py ...
最新文章
- 【SQL Server】系统学习之三:逻辑查询处理阶段-六段式
- 同步控制 之“重入锁”
- 测试新版FCKeditor编辑器精简版
- Python小游戏(并夕夕版飞机大战)
- PHPCMS后台框架实现思路
- 01Struts 2
- 在gitlab 中使用webhook 实现php 自动部署git 代码
- python 艺术照片滤镜_Python实现PS滤镜Fish lens图像扭曲效果示例
- 排序算法之——三路快排分析
- Anaconda 安装 OpenCV 遇到的问题
- android:digits 代码设置,EditText中android:digits失效问题
- PHP 接收 UDP包_常用的抓包工具包含电脑端及手机端
- oracle建表语句 货币,Oracle建表语句是什么
- MongoDB索引原理
- Python3官方手册中文在线版
- Keil 5报错error C216: subscript on non-array or too many dimensions
- LORA无线远传水表适者生存
- seo网站优化的金字塔模型
- 如何使用python实现简单爬取网页数据并导入MySQL中的数据库
- 致远OA表单自定义函数(计算N年后今天的日期 )
热门文章
- Delphi用ini文档实现界面无闪烁多语言转换
- 艾伟:WCF从理论到实践(2):决战紫禁之巅
- eclipse maven访问maven私有库
- 微信企业号让IOS不要识别数字为电话号码的方法
- linux packet socket,linux Packet socket (1)简单介绍
- mysql proxy 主从_【MYSQL知识必知必会】MySQL主从复制读写分离(基于mysql-proxy实现)...
- NM的完整形式是什么?
- python中locked_Python锁类| 带示例的locked()方法
- Python | 从用户输入数据,保存到文件,读取并打印
- snmp 获得硬件信息_计算机网络基础课程—简单网络管理协议(SNMP)