Matplotlib畫三維曲線
到目前為止Matplotlib對於三維圖形,曲線的支持還比較簡單。比方畫一個三維的箭頭,目前還需要自己定義函數實現。但是也足夠用了,因為經常需要畫的曲線,曲面,矢量場等都可以實現了。三維文字也可以處理了,用起來也比較簡單。只需要從mpl_toolkits.mplot3d 導入Axes3D。
目前Axes3D目前可以實現:
- Line plots
- Scatter plots
- Wireframe plots
- Surface plots
- Tri-Surface plots
- Contour plots
- Filled contour plots
- Polygon plots
- Bar plots
- Quiver
- 2D plots in 3D
- Text
下面以螺旋線和莫比烏斯帶為例來說明怎麼使用。
螺旋線
from mpl_toolkits.mplot3d import Axes3Dfrom numpy import *from pylab import *fig = figure()ax=Axes3D(fig)t= linspace(-4 * np.pi, 4 * np.pi, 100)z = 2*tr = 1x = r * sin(t)y = r * cos(t)ax.plot(x, y, z, label=helix)legend()show()
莫比烏斯帶
import numpy as npimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3Dfig = plt.figure()u = np.linspace(0, 2.0 * np.pi, endpoint=True, num=50)v = np.linspace(-0.5, 0.5, endpoint=True, num=10)u, v = np.meshgrid(u, v)x = (1 + 0.5 * v * np.cos(u / 2.0)) * np.cos(u)y = (1 + 0.5 * v * np.cos(u / 2.0)) * np.sin(u)z = 0.5 * v * np.sin(u / 2.0)ax = Axes3D(fig)ax.plot_surface(x, y, z, cmap=plt.cm.Greys_r)ax.set_zlim(-1, 1)plt.show()
推薦閱讀:
TAG:Matplotlib | numpy | 可視化 |