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 算法 排序实现快速排序
Jun 05 Python
Python版微信红包分配算法
May 04 Python
Python实现包含min函数的栈
Apr 29 Python
Python3 单行多行万能正则匹配方法
Jan 07 Python
在Python中使用Neo4j的方法
Mar 14 Python
使用pyinstaller逆向.pyc文件
Dec 20 Python
深入了解python列表(LIST)
Jun 08 Python
用python实现名片管理系统
Jun 18 Python
python实现在线翻译
Jun 18 Python
python程序需要编译吗
Jun 19 Python
python+selenium 简易地疫情信息自动打卡签到功能的实现代码
Aug 22 Python
python 爬虫如何正确的使用cookie
Oct 27 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
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
PHP 开源AJAX框架14种
2009/08/24 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
php调用淘宝开放API实现根据卖家昵称获取卖家店铺ID的方法
2015/07/29 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
2016/05/13 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
jquery.ajax的url中传递中文乱码问题的解决方法
2014/02/07 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
简单好用的nodejs 爬虫框架分享
2017/03/26 NodeJs
JavaScript设计模式之原型模式分析【ES5与ES6】
2018/07/26 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
简介Python的collections模块中defaultdict类型的用法
2016/07/07 Python
Python爬取十篇新闻统计TF-IDF
2018/01/03 Python
django初始化数据库的实例
2018/05/27 Python
Python实现 版本号对比功能的实例代码
2019/04/18 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
keras CNN卷积核可视化,热度图教程
2020/06/22 Python
SHEIN香港:价格实惠的女性时尚服装
2018/08/14 全球购物
幼儿园教师国培感言
2014/02/02 职场文书
教育学习自我评价
2014/02/03 职场文书
《识字五》教学反思
2014/03/01 职场文书
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
2014年团队工作总结
2014/11/24 职场文书
超搞笑婚前保证书
2015/05/08 职场文书
python爬取网页版QQ空间,生成各类图表
2021/06/02 Python
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
用JS写一个发布订阅模式
2021/11/07 Javascript
python实现局部图像放大
2021/11/17 Python