简介

正如,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. HDOJ 1722--Cake(切蛋糕问题)

    一次生日Party可能有p人或者q人参加,现准备有一个大蛋糕.问最少要将蛋糕切成多少块(每块大小不一定相等),才能使p人或者q人出席的任何一种情况,都能平均将蛋糕分食. Input 每行有两个数p和q ...

  2. js原型链理解(4)-经典继承

    经典继承就是组合继承,就是组合构造函数和原型链的优点混合继承. 1.避免引用类型的属性初始化 2.避免相同方法的多次初始化 function Super(name){ this.ages = [100 ...

  3. 超低功耗Sub-1GHz性价比首选方案:CMT2300

    关于超低功耗Sub-1GHz射频收发器,目前性价比方面CMT2300是一款大多客户的首选方案,不管是成本方面还是性能方面,都能大大的满足客户的需求.下面为大家讲解下CMT2300 这款Sub-1GHz ...

  4. Day1-T1

    原题目 Describe:普通前缀和(当然有升级版的题目,范围3000+) code: #include<bits/stdc++.h> #define maxn 1010 #define ...

  5. C语言-字符类型

    C语言-字符类型 char不仅是一种整数,也是一种特殊的类型:字符(character). 常用单引号表示字符的字面量,如'a', '1'. 单引号''也是一个字符,printf和scanf里用的%c ...

  6. 【转】centos7轻松搭建文件服务器

    1.安装apache服务器 yum install httpd 2:启动httpd服务 service httpd start 3:查看httpd服务器的版本 4:修改访问端口和文件路径,以防端口冲突 ...

  7. Python爬虫的简单入门(一)

    Python爬虫的简单入门(一) 简介 这一系列教学是基于Python的爬虫教学在此之前请确保你的电脑已经成功安装了Python(本教程使用的是Python3).爬虫想要学的精通是有点难度的,尤其是遇 ...

  8. FTP和HTTP

    一.字面上来看 HTTP是Hyper Text Transfer Protocol,超文本传输协议: FTP是File Transfer Protocol,文件传输协议: 简单说HTTP是面向网页的, ...

  9. 给vector对象添加元素的方法

    #include<iostream> #include<vector> using namespace std; int main() { //初始化10个元素,每个值都为0 ...

  10. zabbix获取到的数值大于1000之后自动转换成1k

    问题:zabbix在取到的值很大时会自动变成K,M,G 解决方法: 1.修改/var/www/html/zabbix/include/func.inc.php文件(这个文件不一定在这,自己find找下 ...