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学习笔记之常用函数及说明
May 23 Python
Python解析最简单的验证码
Jan 07 Python
Sanic框架路由用法实例分析
Jul 16 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
详解python中docx库的安装过程
Nov 08 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
python高级特性简介
Aug 13 Python
python switch 实现多分支选择功能
Dec 21 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
详解Python中下划线的5种含义
Jul 15 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 保留小数点
2009/04/21 PHP
Can't create/write to file 'C:\WINDOWS\TEMP\...MYSQL报错解决方法
2011/06/30 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
jquery根据name属性查找的小例子
2013/11/21 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
2016/12/15 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
JS使用面向对象技术实现的tab选项卡效果示例
2017/02/28 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
jQuery实现菜单栏导航效果
2017/08/15 jQuery
boostrap模态框二次弹出清空原有内容的方法
2018/08/10 Javascript
基于Vue组件化的日期联动选择器功能的实现代码
2018/11/30 Javascript
JavaScript 斐波那契数列 倒序输出 输出100以内的质数代码实例
2019/09/11 Javascript
vue + axios get下载文件功能
2019/09/25 Javascript
[02:31]DOTA2帕克 英雄基础教程
2013/11/26 DOTA
[01:25]DOTA2自定义游戏灵园鬼域等你踏足
2015/10/30 DOTA
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
python fabric使用笔记
2015/05/09 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
2018/06/14 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
python基于gevent实现并发下载器代码实例
2019/11/01 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
2019/12/06 Python
社区端午节活动总结
2015/02/11 职场文书
干部考核工作总结2015
2015/07/24 职场文书
优秀党员主要事迹材料
2015/11/04 职场文书
php字符串倒叙
2021/04/01 PHP
Redis三种集群模式详解
2021/10/05 Redis