码迷,mamicode.com
首页 > 其他好文 > 详细

The mplot3d Toolkit

时间:2019-08-18 11:59:55      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:plt   内容   code   color   tor   常用   理解   imp   三维空间   

简介

正如,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

标签:plt   内容   code   color   tor   常用   理解   imp   三维空间   

原文地址:https://www.cnblogs.com/vocus/p/11371300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!