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 ...
随机推荐
- 143-PHP printf函数
<?php $num=123.456; //定义一个浮点数变量 printf('以整数形式输出:%d',$num); //格式化为有符号十进制整数后输出 ?> <?php $num= ...
- oracle11g导出dmp文件时不能导出空表,导致缺表
一.执行 select 'analyze table '||table_name||' compute statistics;' from user_tables; 将该查询语句查询到的结果粘贴到sq ...
- 字符输出、if判断
1.这里学习交互性输入 #input 接受的所有数据都是字符串,即使你输入的是数字,但依然会被当成字符串来处理 #type 用来查看变量存入到内存时的属性 #int 将变量强制转化为整型 #str ...
- 禁止ViewPager的左右滑动
参考 思路:重写android.support.v4.view.ViewPager中的ViewPager 写一个NoScrollViewPager继承ViewPager 然后用NoScrollVi ...
- PHP日期函数
在正式学习日期函数前大家得了解几个概念: 1.时区 2.世界时 3.unix时间戳 时区 这个概念,之前大家听说过很多.我们来啰嗦两句,我们现实生活中使用的实区,在电脑里面也是一样有规定的.1884年 ...
- 小白学Python——Anaconda安装
小白:Mr.林,快救救我,我被那些数据压得喘不过气了. Mr.林:小白,表方,怎么了? ! 小白:Mr.林,我从公司数据平台上下了一堆数据,如果选择时间范围广的话,平台就卡的动不了,动不动还奔溃, ...
- 使用 prototype 定义方法和属性
除了可以在类的构造器方法中定义方法和属性外,也可以使用 prototype 定义方法和属性.每个类都有这个属性,该属性是一个静态属性,因此无需实例化,只需使用类引用该属性即可. 1.1 使用 prot ...
- java 实现每次从list中取5000条数据放入新list
从list中取固定条数的数据放入新的list里 public static <T> List<List<T>> split(List<T> resLis ...
- struct寻址&for反汇编
//for 反汇编 #include<stdio.h> int main() { ; ; ;i<;i++) { s=s+; } s=; ;i>=;i--) { s=s+; } ...
- grep sed akw
sed参考 #打印2-4行 [root@localhost ~]# sed -n '2,4p' test [root@localhost ~]# awk 'NR==2,NR==4{print}' te ...