系列文章目录
一、简介
相较于之前的版本,最新版的matplotlib只需要通过将关键字参数projection="3d"
传递给来创建(Axes3D类的)Figure.add_subplot
即可创建创建3维画布,其具体使用同2D相差无几:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
在Matplotlib 1.0.0之前,Axes3D需要先实例化 。
from mpl_toolkits.mplot3d import Axes3D
ax = Axes3D(fig)
而Matplotlib在版本3.2.0中进行了更改:在Matplotlib 3.2.0之前,需要显式导入 mpl_toolkits.mplot3d
模块,才能将“ 3d”参数传进 Figure.add_subplot。下面我们就来绘制各种图像:
二、图像
1、线图
函数:点击可以查看该函数源码
Axes3D.plot(self,xs,ys,* args,zdir ='z',** kwargs )
参数 | |
---|---|
xs | 数据点的x坐标 |
ys | 数据点的y坐标 |
zs | 数据点的z坐标 |
zdir | {‘x’,‘y’,‘z’}绘制2D数据时,用作z的方向(“ x”,“ y”或“ z”);默认为“ z”。 |
**kwargs | 其他 |
代码:
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
t = np.linspace(0, 20, 100)
x = np.sin(t)
y = np.cos(t)
plt.plot(x, y, t)
plt.show()
效果图:
2、散点图
函数:点击可以查看该函数源码
Axes3D.scatter(self,xs,ys,zs = 0,zdir ='z',s = 20,c = None,depthshade = True,* args,** kwargs )
参数 | |
---|---|
xs,ys | 数据点阵列的位置 |
zs | float类型或类似数组的参数,可选,默认值:0。表示 Z位置。长度与xs和 ys相同的数组,或者是将所有点放置在同一平面上的单个值。 |
zdir | {‘x’,‘y’,‘z’,’-x’,’-y’,’-z’},可选,默认值:‘z’。zs的轴方向。在3D上绘制2D数据时,这很有用。数据必须作为xs,ys传递。然后将zdir设置 为“ y”,将数据绘制到xz平面上。 |
s | 标量或阵列状,可选的,默认值:20。标记大小(以磅为单位)** 2。长度与xs和ys相同的数组或单个值可使所有标记的大小相同。 |
c | 颜色,序列或颜色序列,可选 |
depthshade | bool,可选,默认值:True。是否为散射标记着色以提供深度外观。每次调用scatter()都会独立执行深度着色。 |
代码
import matplotlib.pyplot as plt
import numpy as np
fig = plt