数据可视化神器matplotlib学习之路(四)

今天画一下3D图像,首先的另外引用一个包 from mpl_toolkits.mplot3d import Axes3D,接下来画一个球体,首先来看看球体的参数方程吧

(0≤θ≤2π,0≤φ≤π)

然后就可以上代码了:

from matplotlib import pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D

a = np.linspace(0, np.pi*2, 20)
b = np.linspace(0, np.pi, 20)
A, B = np.meshgrid(a, b)#这里要注意一下,需要给对应的网格点转换成坐标矩阵
X = np.sin(A)*np.cos(B)#x坐标
Y = np.sin(A)*np.sin(B)#y坐标
Z = np.cos(A)#z坐标
fig = plt.figure()
ax = Axes3D(fig)#添加3D图
ax.plot_surface(X, Y, Z, cmap='rainbow')#画球体
ax.contourf(X, Y, Z,
            zdir='z', #投影到z坐标,也可以是x,y
            offset=-1.2, #投影到坐标值为-1.2的平面上
            cmap='rainbow')
#设置各个坐标范围
ax.set_zlim((-1.2, 1.2))
ax.set_xlim((-1.2, 1.2))
ax.set_ylim((-1.2, 1.2))

plt.show()

大功告成!

猜你喜欢

转载自www.cnblogs.com/yifengjianbai/p/10265942.html