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 相关文章推荐
pymssql ntext字段调用问题解决方法
Dec 17 Python
Python及Django框架生成二维码的方法分析
Jan 31 Python
用Django实现一个可运行的区块链应用
Mar 08 Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 Python
Python 200行代码实现一个滑动验证码过程详解
Jul 11 Python
Django 反向生成url实例详解
Jul 30 Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 Python
节日快乐! Python画一棵圣诞树送给你
Dec 24 Python
Django+RestFramework API接口及接口文档并返回json数据操作
Jul 12 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 Python
python中remove函数的踩坑记录
Jan 04 Python
请求模块urllib之PYTHON爬虫的基本使用
Apr 08 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+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
PHP中Session引起的脚本阻塞问题解决办法
2014/04/08 PHP
一组PHP加密解密函数分享
2014/06/05 PHP
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
javascript 硬盘序列号+其它硬件信息
2008/12/23 Javascript
jQuery操作checkbox选择(list/table)
2013/04/07 Javascript
JS HTML5 音乐天气播放器(Ajax获取天气信息)
2013/05/26 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
Node.js的Koa框架上手及MySQL操作指南
2016/06/13 Javascript
用jQuery.ajaxSetup实现对请求和响应数据的过滤
2016/12/20 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
JS Testing Properties 判断属性是否在对象里的方法
2017/10/01 Javascript
vue-自定义组件传值的实例讲解
2018/09/18 Javascript
微信小程序实现保存图片到相册功能
2018/11/30 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
python安装以及IDE的配置教程
2015/04/29 Python
基于python 爬虫爬到含空格的url的处理方法
2018/05/11 Python
Python3获取拉勾网招聘信息的方法实例
2019/04/03 Python
Python中栈、队列与优先级队列的实现方法
2019/06/30 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Python selenium模块实现定位过程解析
2020/07/09 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
Emporio Armani腕表天猫官方旗舰店:乔治·阿玛尼为年轻人设计的副线品牌
2017/07/02 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
优秀员工自荐书范文
2013/12/08 职场文书
中国好声音广告词
2014/03/18 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
小爸爸观后感
2015/06/15 职场文书
小学语文课《掌声》教学反思
2016/03/03 职场文书
python读取mat文件生成h5文件的实现
2022/07/15 Python