python3利用Axes3D库画3D模型图


Posted in Python onMarch 25, 2020

Python3利用Axes3D库画3D模型图,供大家参考,具体内容如下

最近在学习机器学习相关的算法,用python实现。自己实现两个特征的线性回归,用Axes3D库进行建模。

python代码

import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
# 三维,两个特征
fig = plt.figure(figsize=(8, 6)) #设置图标的大小
ax = fig.add_subplot(111, projection='3d') # 111的意思是把画布分为1行1列,画在第一个方格内。其实就是整个画布。

# 创建样本,注意两个特征不能线性相关,否则无法用最小二乘解参数
X1 = np.arange(-4, 4, 0.1)
m = len(X1)
X2 = np.random.rand(m)*5
# print(X2)
# print(X1)

# 堆叠全1数组和X1以及X2形成样本的矩阵,倒置,用以矩阵乘法
X = np.vstack((np.full(m, 1), X1, X2)).T

# y = 15*X1 + 3 * X2 + theta0
# 自定义样本输出
Y = X1 + 3 * X2 + 3*np.random.randn(m)

# 利用标准方程(最小二乘法求解theta)
theta = np.dot(np.dot(np.linalg.inv(np.dot(np.transpose(X), X)),
np.transpose(X)), Y)
print(theta)

# 构造网格 meshgrid函数可以通过延伸矩阵构造多维坐标中的网格坐标。
M, N = np.meshgrid(X1, X2)

# zip函数构建一个多元祖[(x1,y1),(x2,y2)...],ravel函数将一个多维数组合并成一维数组
Z = np.array([theta[1] * d + theta[2]*p + theta[0] for d, p in zip(np.ravel(M), np.ravel(N))]).reshape(M.shape)

# 根据网格和函数构建图形 suface是一个完整的面
ax.plot_surface(M, N, Z)
# scatter是散点图
ax.scatter(X1, X2, Y, c='r')
# 设置坐标轴的名称
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')

plt.show()

图形如下

python3利用Axes3D库画3D模型图

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyv8学习python和javascript变量进行交互
Dec 04 Python
Python计算程序运行时间的方法
Dec 13 Python
python统计cpu利用率的方法
Jun 02 Python
python实现redis三种cas事务操作
Dec 19 Python
Python决策树之基于信息增益的特征选择示例
Jun 25 Python
python3使用matplotlib绘制条形图
Mar 25 Python
python多进程读图提取特征存npy
May 21 Python
python实现在函数中修改变量值的方法
Jul 16 Python
Python pandas自定义函数的使用方法示例
Nov 20 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 Python
Django+Nginx+uWSGI 定时任务的实现方法
Jan 22 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 #Python
Django用数据库表反向生成models类知识点详解
Mar 25 #Python
Python动态强类型解释型语言原理解析
Mar 25 #Python
python应用Axes3D绘图(批量梯度下降算法)
Mar 25 #Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
Mar 24 #Python
python实现梯度下降和逻辑回归
Mar 24 #Python
详解Python 实现 ZeroMQ 的三种基本工作模式
Mar 24 #Python
You might like
网站加速 PHP 缓冲的免费实现方法
2006/10/09 PHP
php读取文件内容到数组的方法
2015/03/16 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
javascript中节点的最近的相关节点访问方法
2013/03/20 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
基于JS实现数字+字母+中文的混合排序方法
2016/06/06 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
Vue.js鼠标悬浮更换图片功能
2017/05/17 Javascript
Bootstrap实现的标签页内容切换显示效果示例
2017/05/25 Javascript
详解升级react-router 4 踩坑指南
2017/08/14 Javascript
如何理解Vue的.sync修饰符的使用
2017/08/17 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
node中的session的具体使用
2018/09/14 Javascript
微信小程序开发问题之wx.previewImage
2018/12/25 Javascript
JS实现点击下拉列表文本框中出现对应的网址,点击跳转按钮实现跳转
2019/11/25 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
Vue指令实现OutClick的示例
2020/11/16 Javascript
Python数组遍历的简单实现方法小结
2016/04/27 Python
python实现接口并发测试脚本
2019/06/25 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
Python colormap库的安装和使用详情
2020/10/06 Python
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
杭州时比特电子有限公司SQL
2013/08/22 面试题
大学英语专业求职信
2014/06/21 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
超市店庆活动方案
2014/08/31 职场文书
年度考核个人总结
2015/03/06 职场文书
中英文求职信范文
2015/03/19 职场文书
2015年大学学生会工作总结
2015/05/13 职场文书
迎新年主持词
2015/07/06 职场文书
浅谈Python中的函数(def)及参数传递操作
2021/05/25 Python
使用nginx配置访问wgcloud的方法
2021/06/26 Servers
MongoDB连接数据库并创建数据等使用方法
2021/11/27 MongoDB