The mplot3d Toolkit
简介
正如,pyplot模块被用来绘制二维图,matplotlib使用mplot3d模块绘制三维图形,在mplot3d模块中存在
mpl_toolkits.mplot3d.axes3d
mpl_toolkits.mplot3d.axis3d
mpl_toolkits.mplot3d.art3d
mpl_toolkits.mplot3d.proj3d
四个大类,其中最常用的为mpl_toolkits.mplot3d.axes3d
在做图之前先要理解一下三维是什么?三维是在二维平面的基础上,加入了一个方向向量。可以这样理解:二维平面用x,y两个向量表示,三维空间则用x,y,z三个向量表示。来看两个简单测试实例,用matplotlib分别创建二维图像和三维图像:
import numpy as np
import matplotlib.pyplot as plt
x=np.array([1,2])
y=np.array([1,2])
plt.plot(x, y) #这里传入x, y的值
plt.show()
>>

from mpl_toolkits.mplot3d import Axes3D
import numpy as np
import matplotlib.pyplot as plt fig = plt.figure()
ax = fig.gca(projection='3d') x=np.array([1,2])
y=np.array([1,2])
z=np.array([1,2])
ax.plot(x, y, z, label='parametric curve') #这里传入x, y, z的值
ax.legend() plt.show()
>>

第二个实例在第一个实例的基础上,加入了一个向量z=np.array([1,2]),实现三维效果。我的理解是当z=np.array([0,0])的时候,它就是一个二维平面,只不过我们使用了一个三维的“画板”ax
以下是从matplotlib官方参考文档里翻译过来的内容
官方文档:https://matplotlib.org/tutorials/toolkits/mplot3d.html
入门指南
创建一个Axes3D对象与其他创建axes的方法类似,使用using the projection='3d'关键字创建一个matplotlib.figure.Figure对象,并且赋值给一个新的Axes3D类型的axes
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
在1.0.0新版本中,该方法是创建一个Axes3D类型的axes的首选方法
Line plots
Axes3D.plot(self, xs, ys, *args, zdir='z', **kwargs)可以绘制二维或三维数据
参数:
xs:一维数组,顶点的x坐标
ys:一维数组,顶点的y坐标
zs:标量或一维数组。顶点的z坐标,either one for all points or one for each point.
zdir:{'x','y','z'}当绘制2维图片的时候,使用z('x','y' or'z')
# This import registers the 3D projection, but is otherwise unused.
from mpl_toolkits.mplot3d import Axes3D # noqa: F401 unused import import numpy as np
import matplotlib.pyplot as plt plt.rcParams['legend.fontsize'] = 10 fig = plt.figure()
ax = fig.gca(projection='3d') # Prepare arrays x, y, z
theta = np.linspace(-4 * np.pi, 4 * np.pi, 100)
z = np.linspace(-2, 2, 100)
r = z**2 + 1
x = r * np.sin(theta)
y = r * np.cos(theta) ax.plot(x, y, z, label='parametric curve')
ax.legend() plt.show()
>>

The mplot3d Toolkit的更多相关文章
- Python画各种 3D 图形Matplotlib库
回顾 2D 作图 用赛贝尔曲线作 2d 图.此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的,有对赛贝尔曲线感兴趣的朋友们可以去学习学习,在 matplotlib 中,figur ...
- 使用 Windows Phone Toolkit 的 Tilt 效果
上一篇文章分享了如何使控件具有摁下的效果(在WindowsPhone中使控件具有Tilt效果),实现方式是在项目中添加新的类文件,其实,如果项目引用了Windows Phone Toolkit,那么就 ...
- Coding4Fun Toolkit支持本地化解决办法
在项目中需要使用Coding4Fun Toolkit中的TimePicker控件, 1. 但是在中文系统下显示的却是英文: 2. 最后发现,需要在源代码中添加中文资源,并重新编译出包含中文语言的dll ...
- Windows Phone Toolkit 的 DatePicker 控件本地化的问题
用到 The Windows Phone Toolkit 里的 DatePicker 控件,但是多语言的时候出现了问题: 手机设置为中文,虽然月份跟星期有效,但是 Title 却还是默认的语言:CHO ...
- C# extended toolkit propertygrid 隐藏部分属性
该方法是通过更改ShowDetail的状态来实现的隐藏属性 首先在引用里右键 管理NuGet程序包 查找extended wpf toolkit 并安装 然后在MainWindow.xaml添加引用 ...
- 【ToolKit】轻量级JS库
优点: 丢弃了一些不常用的方法(jQuery.fn):slideUp.fadeIn.animate等: 新增获取子节点的方法(ToolKit.fn):firstChild,lastChild等: 新增 ...
- C# 使用Silverlight toolkit Chart
一.基础介绍 Silverlight ToolKit是微软发布的基于Microsoft-Public License(MS-PL)许可协议的控件集.MS-PL许可协议允许商业或非商业的发布,所以我们可 ...
- Enhanced Mitigation Experience Toolkit 软件安全性强化工具
Enhanced Mitigation Experience Toolkit软件是微软为应对互联网中层出不穷的漏洞而推出的一款安全工具,可以在Window Update未获取到补丁前,对系统进行保护. ...
- toolkit:Accordion DataTemplate ListBox TextBlock Interaction.Triggers
困扰好几个小时的问题终于解决了,本人系菜鸟,使用MVVM设计模式,绑定DataTemplate的Command,需要使用 DataContent的资源,否则无法触发ICommand ClickChil ...
随机推荐
- request.getParameter() 接收参数中文乱码
修改tomcat配置文件 设置url编码集 <Connector port="8080" protocol="HTTP/1.1" connectionTi ...
- 联系我们地图坐标展示js
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=6d88 ...
- 腾讯云服务器上搭建Jenkins配置邮箱通知
1,Jenkins 点击 系统管理 2,点击系统管理 3,配置系统管理员邮件地址 5,配置 Extended E-main Notification,(用户名不需要邮箱后缀“@163.com”, SS ...
- 编程入门-Eclipse项目导出和导入
编程入门-Eclipse项目导出和导入 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.导出项目 1>.如下图所示,在项目目录上右击鼠标,依次点击"Export& ...
- hibernate注解 笔记
1.hibernate使用@where实现条件过滤功能 其里面只有一个参数clause,完整用法是: @Where(clause = "VALID_FLAG=1") 可以加在实体类 ...
- 15. react UI组件和容器组件的拆分 及 无状态组件
1.组件的拆分 组件拆分的前提 当所有的逻辑都出现在一个组件内时 组件会变得非常复杂 不便与代码的维护 所以对组件进行拆分 IU组件 进行页面渲染 容器组件 进行逻辑操作 UI组件的拆分 新建一个 ...
- Charles中windows版本解决response乱码问题
实际上三种,目前写了两种,加了之后有的不显示乱码,但是有的还是显示,第三种搜索结果是安装证书,但是本人安装后证书后未受到信任,所以暂时不知是否能够成功 1,在charles.ini中,手动增加一个vm ...
- 利用京东云Serverless服务快速构建5G时代的IoT应用
10月31日,在2019年中国国际信息通信展览会上,工信部宣布:5G商用正式启动.5G商用时代来了! 5G的商用,使得数据传输速度.响应速度.连接数据.数据传输量.传输可靠性等方面都有了显著的提升,这 ...
- 春节前“摸鱼”指南——SCA命令行工具助你快速构建FaaS服务
春节将至,身在公司的你是不是已经完全丧失了工作的斗志? 但俗话说得好:"只要心中有沙,办公室也能是马尔代夫." 职场人如何才能做到最大效能地带薪"摸鱼",成为了 ...
- CSS绘制小三角
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...