繪制極區圖
首先創建一個直方圖,將360度分為八個面元,每個面元為45度,把所有數據分到這八個面元中
hist, bins = np.histogram(df_ravenna['wind_deg'],8,[0,360]) print(hist) print(bins) [ 0 5 11 1 0 1 0 0] [ 0. 45. 90. 135. 180. 225. 270. 315. 360.]
以上histogram()函數返回的結果中,hist表示落在每個面元的數據點的數目,bins表示將【0,360】分割成8個面元的9條邊界
以ravenna為例
N = 8 # 數據角度 theta = np.arange(0.+np.pi/8,2*np.pi+np.pi/8,2*np.pi/8) # 數據極徑 radii = np.array(hist) # 繪制極區圖坐標系,此處的[0,0,1,1]為極坐標圖所在位置下面坐標limit[xmin,ymin,xmax,ymax] plt.axes([0,0,1,1],polar=True) # 定義每個扇區的RGB值(R,G,B),x越大,對應的顏色越接近藍色 colors = [(1-x/max(hist), 1-x/max(hist),0.75) for x in radii] plt.bar(theta,radii,width=(2*np.pi/N),bottom=0.0,color=colors) plt.title("Ravenna",x=0.2,fontsize=20)