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编写一个简单的FUSE文件系统的教程
Apr 02 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python实时获取cmd的输出
Dec 13 Python
Python 加密的实例详解
Oct 09 Python
Python实现的绘制三维双螺旋线图形功能示例
Jun 23 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
Dec 27 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
Apr 11 Python
python实现鸢尾花三种聚类算法(K-means,AGNES,DBScan)
Jun 27 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
Python django中如何使用restful框架
Jun 23 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实现防盗链的方法分析
2017/07/25 PHP
php的命名空间与自动加载实现方法
2019/08/25 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
javascript创建createXmlHttpRequest对象示例代码
2014/02/10 Javascript
HTML页面登录时的JS验证方法
2014/05/28 Javascript
Javascript技术栈中的四种依赖注入小结
2016/02/27 Javascript
jQuery简单实现tab选项卡切换效果
2016/06/20 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
详解vue微信网页授权最终解决方案
2019/06/16 Javascript
django模型中的字段和model名显示为中文小技巧分享
2014/11/18 Python
复习Python中的字符串知识点
2015/04/14 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
深入理解Python中的super()方法
2017/11/20 Python
Python验证文件是否可读写代码分享
2017/12/11 Python
浅谈python之新式类
2018/08/12 Python
使用python生成杨辉三角形的示例代码
2018/08/29 Python
pandas.dataframe按行索引表达式选取方法
2018/10/30 Python
Pycharm 实现下一个文件引用另外一个文件的方法
2019/01/17 Python
python实现贪吃蛇游戏
2020/03/21 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Python实现疫情通定时自动填写功能(附代码)
2020/05/27 Python
Django中使用Celery的方法步骤
2020/12/07 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
幼儿园庆六一活动方案
2014/03/06 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书