简介

正如,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的更多相关文章

  1. Python画各种 3D 图形Matplotlib库

    回顾 2D 作图 用赛贝尔曲线作 2d 图.此图是用基于 Matplotlib 的 Path 通过赛贝尔曲线实现的,有对赛贝尔曲线感兴趣的朋友们可以去学习学习,在 matplotlib 中,figur ...

  2. 使用 Windows Phone Toolkit 的 Tilt 效果

    上一篇文章分享了如何使控件具有摁下的效果(在WindowsPhone中使控件具有Tilt效果),实现方式是在项目中添加新的类文件,其实,如果项目引用了Windows Phone Toolkit,那么就 ...

  3. Coding4Fun Toolkit支持本地化解决办法

    在项目中需要使用Coding4Fun Toolkit中的TimePicker控件, 1. 但是在中文系统下显示的却是英文: 2. 最后发现,需要在源代码中添加中文资源,并重新编译出包含中文语言的dll ...

  4. Windows Phone Toolkit 的 DatePicker 控件本地化的问题

    用到 The Windows Phone Toolkit 里的 DatePicker 控件,但是多语言的时候出现了问题: 手机设置为中文,虽然月份跟星期有效,但是 Title 却还是默认的语言:CHO ...

  5. C# extended toolkit propertygrid 隐藏部分属性

    该方法是通过更改ShowDetail的状态来实现的隐藏属性 首先在引用里右键 管理NuGet程序包 查找extended wpf toolkit 并安装 然后在MainWindow.xaml添加引用 ...

  6. 【ToolKit】轻量级JS库

    优点: 丢弃了一些不常用的方法(jQuery.fn):slideUp.fadeIn.animate等: 新增获取子节点的方法(ToolKit.fn):firstChild,lastChild等: 新增 ...

  7. C# 使用Silverlight toolkit Chart

    一.基础介绍 Silverlight ToolKit是微软发布的基于Microsoft-Public License(MS-PL)许可协议的控件集.MS-PL许可协议允许商业或非商业的发布,所以我们可 ...

  8. Enhanced Mitigation Experience Toolkit 软件安全性强化工具

    Enhanced Mitigation Experience Toolkit软件是微软为应对互联网中层出不穷的漏洞而推出的一款安全工具,可以在Window Update未获取到补丁前,对系统进行保护. ...

  9. toolkit:Accordion DataTemplate ListBox TextBlock Interaction.Triggers

    困扰好几个小时的问题终于解决了,本人系菜鸟,使用MVVM设计模式,绑定DataTemplate的Command,需要使用 DataContent的资源,否则无法触发ICommand ClickChil ...

随机推荐

  1. 实验吧-杂项-MD5之守株待兔(时间戳&python时间戳函数time.time())

    其实也有点蒙圈,因为从没做过和时间戳有关的题. 打开网站,将系统密钥解密得到一串值,而自己的密钥解密是空的,既然说是要和系统匹配,就把解密得到的值以get方式送出去. 但是发现还是在自己的密钥也发生了 ...

  2. Node.js NPM 作用

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM ...

  3. json字符串格式化显示

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. hdu 3790 最短路径dijkstra(多重权值)

    最短路径问题 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  5. Django template配置

    TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join( ...

  6. android 开发学习

    androidSDK自带SQLite数据库,使用时继承父类(SQLiteOpenHelper). this表对象本身,理解为指向自身的指针:super(超类)表对象的父类,即指向父类的指针. Cont ...

  7. HZNU-ACM寒假集训Day7小结 背包DP

    背包问题 01背包 状态:f(i,j) 表示只能装前i个物品的情况下,容量为j的背包所能达到的最大总价值 状态转移方程:  f(i,j)=max(f(i-1,j),f(i-1,j-w[i])+v[i] ...

  8. bugku-Web-多次(异或注入,判断被过滤的关键字)

    进去看到url感觉是sql注入, 加上',报错但是%23不报错,加上'--+,也不报错,说明可以用--+注释 加上' or 1=1--+,报错 尝试' oorr 1=1--+,正常 说明or被过滤了. ...

  9. mysql自增长字段设置

    mysql版本:5.7.27 说明:表中只能设置一个自增长字段[主键.索引(其他普通字段不行))] 设置自增长开始值: ALTER TABLE table_name AUTO_INCREMENT=10 ...

  10. 寒假day24

    数据挖掘得继续深入,人物画像需要进行更多层次的分析