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使用urllib2实现发送带cookie的请求
Apr 28 Python
在Python中使用base64模块处理字符编码的教程
Apr 28 Python
python安装教程
Feb 28 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
对DJango视图(views)和模版(templates)的使用详解
Jul 17 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
Aug 20 Python
python快速排序的实现及运行时间比较
Nov 22 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
Python集合操作方法详解
Feb 09 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
Feb 11 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 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使用Redis实现Session共享的实现示例
2019/05/12 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
javascript 简单抽屉效果的实现代码
2010/03/09 Javascript
JavaScript的模块化:封装(闭包),继承(原型) 介绍
2013/07/22 Javascript
Jquery中扩展方法extend使用技巧
2014/08/24 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
JavaScript 随机验证码的生成实例代码
2016/09/22 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
微信小程序实现换肤功能
2018/03/14 Javascript
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
详解为生产环境编译Angular2应用的方法
2018/12/10 Javascript
python读取html中指定元素生成excle文件示例
2014/04/03 Python
朴素贝叶斯算法的python实现方法
2014/11/18 Python
Python中encode()方法的使用简介
2015/05/18 Python
python对html过滤处理的方法
2018/10/21 Python
python实现求特征选择的信息增益
2018/12/18 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
python如何操作mysql
2020/08/17 Python
python 用pandas实现数据透视表功能
2020/12/21 Python
澳大利亚便宜的家庭购物网站:CrazySales
2018/02/06 全球购物
Prototype如何为一个Ajax添加一个参数
2015/12/06 面试题
违反学校规定检讨书
2014/01/18 职场文书
中秋客户感谢信
2015/01/22 职场文书
北京英文导游词
2015/02/12 职场文书
入党个人总结范文
2015/03/02 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技