八、 3D 绘图
3D绘图与2D绘图的调用方法几乎相同,除了增加一个
projection='3d'
的关键字参数。import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
fig=plt.figure()
ax=fig.add_addsubplot(111,projection='3d') # 旧式写法
ax=Axes3D(fig) #新式写法
绘制直线:
Axes3D.plot(xs, ys, *args, **kwargs)
。其参数为:xs,ys
:点的x,y
坐标zs
:点的z
坐标。该值可以是一个标量(表示对所有点都取同一个值);也可以是个数组或列表,表示每个点一个值zdir
:指定那个是z
轴。其值可以是'x'
或者'y'
或者'z'
- 剩下的关键字参数与
Axes.plot()
相同
绘制散点图:
Axes3D.scatter(xs, ys, zs=0, zdir=’z’, s=20, c=’b’, depthshade=True, *args, **kwargs)
。其参数为:xs,ys
:点的x,y
坐标zs
:点的z
坐标。该值可以是一个标量(表示对所有点都取同一个值);也可以是个数组或列表,表示每个点一个值zdir
:指定那个是z
轴。其值可以是'x'
或者'y'
或者'z'
s
:散点的大小(单位为point^2
).该值可以是一个标量(表示对所有点都取同一个值);也可以是个数组或列表,表示每个点一个值c
:散点的颜色。你可以将它设为一个颜色字符串,表示所有的点都是一个颜色。或者是个cmap
,指定颜色图depthshade
:一个布尔值。如果为True
,则通过对marker
设置阴影来展示层次关系- 剩下的关键字参数与
Axes.scatter()
相同
绘制线框:
Axes3D.plot_wireframe(X, Y, Z, *args, **kwargs)
。其参数为:X,Y
:点的x,y
坐标Z
:点的z
坐标。该值可以是一个标量(表示对所有点都取同一个值);也可以是个数组或列表,表示每个点一个值rstride
:行的步长cstride
:列的步长- 剩下的关键字传递给
LineCollection