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提取网页中超链接的方法
Sep 18 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
使用python制作一个解压缩软件
Nov 13 Python
python返回数组的索引实例
Nov 28 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
关于tf.TFRecordReader()函数的用法解析
Feb 17 Python
解决windows下python3使用multiprocessing.Pool出现的问题
Apr 08 Python
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
May 25 Python
Django实现drf搜索过滤和排序过滤
Jun 21 Python
PYTHON基于Pyecharts绘制常见的直角坐标系图表
Apr 28 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实现搜索时记住状态的方法示例
2018/05/11 PHP
Yii框架响应组件用法实例分析
2019/09/04 PHP
HTML中不支持静态Expando的元素的问题
2007/03/08 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
javascript获得当前的信息的一些常用命令
2015/02/25 Javascript
javascript实现密码强度显示
2015/03/18 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
vuejs实现折叠面板展开收缩动画效果
2018/09/06 Javascript
JavaScript 复制对象与Object.assign方法无法实现深复制
2018/11/02 Javascript
vue计算属性无法监听到数组内部变化的解决方案
2019/11/06 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
2020/10/13 Javascript
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
[45:52]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第二场 12.09
2020/12/12 DOTA
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
Python中的魔法方法深入理解
2014/07/09 Python
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
安装Python的教程-Windows
2017/07/22 Python
Python两个字典键同值相加的几种方法
2019/03/05 Python
python设置随机种子实例讲解
2019/09/12 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
5行Python代码实现图像分割的步骤详解
2020/05/25 Python
新西兰航空中国官网:Air New Zealand China
2018/07/24 全球购物
Bodum官网:咖啡和茶壶、玻璃器皿、厨房电器等
2018/08/01 全球购物
电子商务专业自我鉴定
2013/12/18 职场文书
质量月活动总结
2014/08/26 职场文书
2014年计生工作总结
2014/11/21 职场文书
男人帮观后感
2015/06/18 职场文书
安全教育主题班会教案
2015/08/12 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android