【數據分析day07】matplotlib 3D圖 & 玫瑰圖

matplotlib 3D圖 & 玫瑰圖

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)

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章