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 相关文章推荐
简单解析Django框架中的表单验证
Jul 17 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
Python实现将Excel转换为json的方法示例
Aug 05 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
python实现大学人员管理系统
Oct 25 Python
使用PyTorch实现MNIST手写体识别代码
Jan 18 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
Mar 13 Python
Python实现一个优先级队列的方法
Jul 31 Python
python绘制趋势图的示例
Sep 17 Python
如何实现一个python函数装饰器(Decorator)
Oct 12 Python
Python中递归以及递归遍历目录详解
Oct 24 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
建立文件交换功能的脚本(二)
2006/10/09 PHP
php 强制下载文件实现代码
2013/10/28 PHP
php自定义session示例分享
2014/04/22 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
php+ajax实时刷新简单实例
2015/02/25 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
浅析Js(Jquery)中,字符串与JSON格式互相转换的示例(直接运行实例)
2013/07/09 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
jQuery Datatables表头不对齐的解决办法
2017/11/27 jQuery
使用Vue.js和Flask来构建一个单页的App的示例
2018/03/21 Javascript
SVG实现时钟效果
2018/07/17 Javascript
React路由鉴权的实现方法
2019/09/05 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
vue实现随机验证码功能(完整代码)
2019/12/10 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
jupyter安装小结
2016/03/13 Python
基于asyncio 异步协程框架实现收集B站直播弹幕
2016/09/11 Python
python flask实现分页的示例代码
2018/08/02 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案
2018/12/02 Python
在python中以相同顺序shuffle两个list的方法
2018/12/13 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
2019/02/14 Python
详解Python下载图片并保存本地的两种方式
2019/05/15 Python
Win10系统下安装labelme及json文件批量转化方法
2019/07/30 Python
django修改models重建数据库的操作
2020/03/31 Python
Python实现aes加密解密多种方法解析
2020/05/15 Python
医疗保健专业人士购物网站:Scrubs & Beyond
2017/02/08 全球购物
英国最大的在线床超市:Bed Star
2019/01/24 全球购物
Bibloo匈牙利:女装、男装、童装及鞋子和配饰
2019/04/14 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
酒吧员工的岗位职责
2013/11/26 职场文书
社区工作者思想汇报
2014/01/13 职场文书
教师演讲稿开场白
2014/08/25 职场文书
投标售后服务承诺书
2015/04/29 职场文书
详解解Django 多对多表关系的三种创建方式
2021/08/23 Python