matplotlib 三维图表绘制方法简介


Posted in Python onSeptember 20, 2020

1. python三维图表绘制方法简介

python三维图表的绘制算是二维图表的一个进阶版本,本质上和二维图表的绘制并无差别,唯一的区别在于使用的库略有差异。

相较于二维图表使用的pyplot库,三维图表的绘制使用的是Axes3D库。

库引入语句为:

from matplotlib import pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

上下的操作就和二维图表绘制大差不差了,首先定义三维画布,然后向里面绘制三维图表,最后打印出结果即可。

下面,我们通过一些实例来进行说明。

2. 实例说明

 1. 三维曲线图绘制

首先,我们来看一下三维曲线图的绘制。

三维曲线图的绘制和二维曲线图的绘制方法极其相似,只是我们需要做以下两点修改:

  • 将画布修改为三维坐标系;
  • 传参时同时传入x、y、z三个维度的坐标信号。

另外,plot函数需要修改三维曲线绘制的Axes3D.plot函数。

给出代码样例如下:

import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

theta = numpy.linspace(0, 3.14*4, 200)
r = numpy.linspace(0, 1, 200)
x = r * numpy.cos(theta)
y = r * numpy.sin(theta)
z = numpy.linspace(0, 2, 200)

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d')
ax1.plot(x, y, z)
plt.show()

运行即可得到一张三维曲线图。

matplotlib 三维图表绘制方法简介

2. 三维散点图绘制

下面,我们来看一下三维空间中的散点图绘制方法。

其方法其实挺简单的,就是先绘制x、y面的网点坐标,计算相应的z轴高度,而后创建一张三维图,然后通过Axes3D.scatter函数进行散点图绘制即可。

我们给出具体的代码样例如下:

import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
z = xx ** 2 - yy ** 2

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.scatter(xx, yy, z) # 绘制三维散点图
plt.show()

运行即可得到三维散点图。

matplotlib 三维图表绘制方法简介

3. 三维曲面图绘制

三维曲面图的绘制与三维极其类似,只需要将Axes3D.scatter函数替换为Axes3D.plot_surface函数即可。

我们就不再多做解释了,直接给出代码样例如下:

import numpy
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

x = numpy.linspace(-2, 2, 10)
y = numpy.linspace(-2, 2, 10)
xx, yy = numpy.meshgrid(x, y)
print(xx.shape, yy.shape)
z = xx ** 2 - yy ** 2

fig = plt.figure(figsize=(12, 7))
ax1 = plt.axes(projection='3d') # 创建三维坐标轴
ax1.plot_surface(xx, yy, z) # 绘制三维曲面图
plt.show()

运行即可得到三维曲面图。

matplotlib 三维图表绘制方法简介

3. 参考链接

 https://matplotlib.org/tutorials/toolkits/mplot3d.html

Python三维绘图?Matplotlib

到此这篇关于matplotlib 三维图表绘制方法简介的文章就介绍到这了,更多相关matplotlib 三维图表内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
用python一行代码得到数组中某个元素的个数方法
Jan 28 Python
深入了解Django中间件及其方法
Jul 26 Python
django基于存储在前端的token用户认证解析
Aug 06 Python
python 图像处理画一个正弦函数代码实例
Sep 10 Python
手机使用python操作图片文件(pydroid3)过程详解
Sep 25 Python
python实现从wind导入数据
Dec 03 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
基于python实现对文件进行切分行
Apr 26 Python
python实现简单贪吃蛇游戏
Sep 29 Python
python mock测试的示例
Oct 19 Python
python之np.argmax()及对axis=0或者1的理解
Jun 02 Python
分析Python list操作为什么会错误
Nov 17 Python
Python三维绘图之Matplotlib库的使用方法
Sep 20 #Python
scrapy利用selenium爬取豆瓣阅读的全步骤
Sep 20 #Python
Python操作dict时避免出现KeyError的几种解决方法
Sep 20 #Python
python中random.randint和random.randrange的区别详解
Sep 20 #Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 #Python
Python Pillow(PIL)库的用法详解
Sep 19 #Python
Python自动化xpath实现自动抢票抢货
Sep 19 #Python
You might like
在线竞拍系统的PHP实现框架(二)
2006/10/09 PHP
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
Yii列表定义与使用分页方法小结(3种方法)
2016/07/15 PHP
php socket通信简单实现
2016/11/18 PHP
iis6手工创建网站后无法运行php脚本的解决方法
2017/06/08 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
如果文字过长,则将过长的部分变成省略号显示
2006/06/26 Javascript
用正则获取指定路径文件的名称
2007/02/27 Javascript
Extjs学习笔记之七 布局
2010/01/08 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
javascript Window及document对象详细整理
2011/01/12 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
JavaScript移除数组元素减少长度的方法
2013/09/05 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
python 获取网页编码方式实现代码
2017/03/11 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
用python3 urllib破解有道翻译反爬虫机制详解
2019/08/14 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
PyCharm 在Windows的有用快捷键详解
2020/04/07 Python
详解matplotlib绘图样式(style)初探
2021/02/03 Python
HTML5+CSS3绘制锯齿状的矩形
2016/03/01 HTML / CSS
金融专业毕业生推荐信
2013/11/26 职场文书
法学院毕业生求职信
2014/06/25 职场文书
工资收入证明样本(5篇)
2014/09/16 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
考试没考好检讨书
2015/05/06 职场文书
解析高可用Redis服务架构分析与搭建方案
2021/06/20 Redis
Python移位密码、仿射变换解密实例代码
2021/06/27 Python
python数字类型和占位符详情
2022/03/13 Python