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中as用法实例分析
Apr 30 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
PyQt5+Caffe+Opencv搭建人脸识别登录界面
Aug 28 Python
用python求一重积分和二重积分的例子
Dec 06 Python
Python标准库itertools的使用方法
Jan 17 Python
python开发实例之python使用Websocket库开发简单聊天工具实例详解(python+Websocket+JS)
Mar 18 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 Python
python用tkinter实现一个gui的翻译工具
Oct 26 Python
Python模拟键盘输入自动登录TGP
Nov 27 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
php外部执行命令函数用法小结
2016/10/11 PHP
<script defer> defer 是什么意思
2009/05/10 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
js获取GridView中行数据的两种方法 分享
2013/07/13 Javascript
9行javascript代码获取QQ群成员具体实现
2013/10/16 Javascript
Javascript this 关键字 详解
2014/10/22 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
Underscore源码分析
2015/12/30 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
jQuery事件_动力节点Java学院整理
2017/07/05 jQuery
JS实现元素上下左右移动效果
2017/10/18 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
jQuery事件绑定和解绑、事件冒泡与阻止事件冒泡及弹出应用示例
2019/05/13 jQuery
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python3 入门教程 简单但比较不错
2009/11/29 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
python3模块smtplib实现发送邮件功能
2018/05/22 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python Web框架之Django框架cookie和session用法分析
2019/08/16 Python
Python爬虫:url中带字典列表参数的编码转换方法
2019/08/21 Python
如何用OpenCV -python3实现视频物体追踪
2019/12/04 Python
Python实现word2Vec model过程解析
2019/12/16 Python
win10安装tesserocr配置 Python使用tesserocr识别字母数字验证码
2020/01/16 Python
解决pycharm每次打开项目都需要配置解释器和安装库问题
2020/02/26 Python
Python如何输出百分比
2020/07/31 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
Nike爱尔兰官方网站:Nike.com (IE)
2018/03/12 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
路政管理专业推荐信
2013/11/11 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
运动员口号
2014/06/09 职场文书