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测试驱动开发实例
Oct 08 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
Python实现多级目录压缩与解压文件的方法
Sep 01 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
Jun 19 Python
浅析Python 引号、注释、字符串
Jul 25 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
python3 xpath和requests应用详解
Mar 06 Python
Python如何把十进制数转换成ip地址
May 25 Python
Keras预训练的ImageNet模型实现分类操作
Jul 07 Python
python tkinter实现连连看游戏
Nov 16 Python
python 实时调取摄像头的示例代码
Nov 25 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在字符串中查找另一个字符串
2008/11/19 PHP
PHP n个不重复的随机数生成代码
2009/06/23 PHP
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略
2016/03/20 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
javascript 一些用法小结
2009/09/11 Javascript
javascript Keycode对照表
2009/10/24 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
在javascript中对于DOM的加强
2013/04/11 Javascript
Express作者TJ告别Node.js奔向Go
2014/07/14 Javascript
wap手机图片滑动切换特效无css3元素js脚本编写
2014/07/28 Javascript
ajax跨域调用webservice的实现代码
2016/05/09 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
JS设计模式之观察者模式实现实时改变页面中金额数的方法
2018/02/05 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
Windows下搭建python开发环境详细步骤
2020/07/20 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
python 采用paramiko 远程执行命令及报错解决
2019/10/21 Python
pygame实现贪吃蛇游戏(上)
2019/10/29 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
巴西最大的体育用品商城:Netshoes巴西
2016/11/29 全球购物
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Bally澳大利亚官网:瑞士奢侈品牌
2018/11/01 全球购物
高中化学教学反思
2014/01/13 职场文书
打架检讨书100字
2014/01/19 职场文书
网站推广策划方案
2014/06/04 职场文书
关键在于落实心得体会
2014/09/03 职场文书
2019个人工作态度自我评价
2019/04/24 职场文书
解决mysql模糊查询索引失效问题的几种方法
2021/06/18 MySQL
总结python多进程multiprocessing的相关知识
2021/06/29 Python
Java移除无效括号的方法实现
2021/08/07 Java/Android