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(Tornado)模拟登录小米抢手机
Nov 12 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
python样条插值的实现代码
Dec 17 Python
Django数据库类库MySQLdb使用详解
Apr 28 Python
Python定时任务APScheduler的实例实例详解
Jul 22 Python
python之生产者消费者模型实现详解
Jul 27 Python
在Pytorch中计算卷积方法的区别详解(conv2d的区别)
Jan 03 Python
树莓派4B安装Tensorflow的方法步骤
Jul 16 Python
记录一下scrapy中settings的一些配置小结
Sep 28 Python
一篇文章带你搞懂Python类的相关知识
May 20 Python
Python List remove()实例用法详解
Aug 02 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
Nov 11 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
ThinkPHP模板中判断volist循环的最后一条记录的验证方法
2014/07/01 PHP
php输出图像的方法实例分析
2017/02/16 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
2017/11/08 PHP
laravel 框架结合关联查询 when()用法分析
2019/11/22 PHP
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
js function使用心得
2010/05/10 Javascript
js工具方法弹出蒙版
2013/05/08 Javascript
js实现点击切换TAB标签实例
2015/08/21 Javascript
谈谈js中的prototype及prototype属性解释和常用方法
2015/11/25 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
原生JS改变透明度实现轮播效果
2017/03/24 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
JavaScript实现百度搜索框效果
2020/03/26 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
使用webpack构建应用的方法步骤
2019/03/04 Javascript
微信小程序之数据绑定原理解析
2019/08/14 Javascript
Python素数检测的方法
2015/05/11 Python
Python工程师面试题 与Python基础语法相关
2016/01/14 Python
Python批量创建迅雷任务及创建多个文件
2016/02/13 Python
python爬虫之xpath的基本使用详解
2018/04/18 Python
python scatter散点图用循环分类法加图例
2019/03/19 Python
Python日期时间Time模块实例详解
2019/04/15 Python
python 微信好友特征数据分析及可视化
2020/01/07 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
美国受欢迎的女性牛仔裤品牌:DL1961
2016/11/12 全球购物
应届护士求职信范文
2014/01/26 职场文书
入党思想汇报怎么写
2014/04/03 职场文书
纪检干部对照检查材料
2014/08/22 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
老公保证书怎么写
2015/02/26 职场文书
祝寿主持词
2015/07/02 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis
叶县这家生产军用电台的兵工厂,人称“四机部”,走出一上将
2022/02/18 无线电
MySQL数据库完全卸载的方法
2022/03/03 MySQL