3D圖
- 看成是沒有厚度的曲面
導包
from mpl_toolkits.mplot3d.axes3d import Axes3D
生成三維座標系 projector 投影儀
plt.subplot(projection='3d')
生成數據
y = wx + b
x, y = np.linspace(0, 2*np.pi, 100), np.linspace(0, 2*np.pi, 100)
X, Y = np.meshgrid(x, y)
查看形狀
X.shape
Y.shape
第三維跟前兩維的關係
Z = np.sin(X) + np.cos(Y) + 2
繪製圖形
plt.figure(figsize=(2* 8, 8))
axes1 = plt.subplot(1,2,1, projection='3d')
axes1.plot_surface(X, Y, Z)
axes2 = plt.subplot(1,2,2, projection='3d')
axes2 = axes2.plot_surface(X,Y,Z, cmap='rainbow')
plt.colorbar(axes2, shrink=0.5)
玫瑰圖
- 極座標條形圖
- 適合畫氣象圖
創建極座標條形圖
plt.subplot(projection='polar')
例子:拉文納城市 各個方向上的颳風次數
讀取數據
ravenna = np.load('./Ravenna_wind.npy')
ravenna
使用np.histogram計算一組數據的直方圖
data, degree = np.histogram(ravenna, bins=8, range=[0, 360])
display(data.shape, degree.shape)
原來degree是9個方向,現在重新劃分爲8個方向
degree = np.arange(0, 2*np.pi, 2*np.pi / 8)
degree.shape
data
ravenna
plt.figure(figsize=(8,8))
plt.subplot(projection='polar', facecolor='g')
plt.bar(degree, data, color=np.random.rand(8,3), width=np.pi/4)