摘要:python作為一種計算機編程語言,有強大的科學計算庫。隨著氣象工作數據處理需求愈加強烈,python因其強大的數據處理能力而至關重要。
關鍵詞:python;風玫瑰圖;科學計算
1.引言:
隨著NumPy和Matplotlib 等眾多程序庫的開發(fā), Python 越來越適合于做科學計算、繪制高質量圖像。Python是一門通用的程序設計語言,更接近人的自然語言,易學,適合非計算機專業(yè)科研人員。Python已成為眾多領城的科學計算工具。
2.Python簡介:
Rossum1989年發(fā)明,是一種面向對象的動態(tài)的解釋型程序設計語言。
3.常用科學計算庫
3.1NumPy
用pythoy實現的開源的數值計算擴展,提供了許多高級的數值編程功能。
3.2Matplotlib
Matplotlib是python最著名的面向對象繪圖庫,適合編寫短小腳本程序,進行快速的交互式繪圖。
4.使用python進行風玫瑰圖繪制的方法
提取臺站某年風數據,利用Matplolib進行風玫瑰圖繪制。
4.1.Matplotlib
4.1.1代碼
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import matplotlib as mpl
import xlrd
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
Feng2018 = xlrd.open_workbook(r'E:\2018Feng.xlsx')
datat = pd.read_excel(Feng2018, sheet_name='sheet2018')
dt = datat.loc[:, ('WIN_D_Avg_2mi', 'WIN_S_Avg_2mi')]
dt = dt.dropna()
mx = np.ceil(max(dt['WIN_S_Avg_2mi']))
ct0 = np.array(np.arange(0, 361, 22.5))
ct1 = np.array(np.arange(0, mx + 2, 2))
dt['wd'] = pd.cut(dt['WIN_D_Avg_2mi'], ct0)
dt['ws'] = pd.cut(dt['WIN_S_Avg_2mi'], ct1)
count = dt['WIN_S_Avg_2mi'].groupby([dt['ws'], dt['wd']]).count()
data = count.unstack()
n = 16
theta = np.linspace(0, 2 * np.pi, n, endpoint=False)
width = np.pi * 2 / n
labels = list(['N', 'NNE', 'NE', 'ENE', 'E', 'ESE', 'SE', 'SSE', 'S', 'SSW', 'SW', 'WWS', 'W', 'WWN', 'NW', 'NNW'])
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.7, 0.7], projection='polar')
ax1 = fig.add_axes([0.8, 0.2, 0.01, 0.6])
colors = ['blue', 'orange', 'forestgreen', 'tomato', 'violet', 'red', 'm','yellow', 'gray']
cmap = mpl.colors.ListedColormap(colors)
norm = mpl.colors.BoundaryNorm(ct1, cmap.N)
for i in range(0, len(data.index)):
idx = data.index[i]
rad = data.loc[idx]
ax.fill(theta,rad,alpha=0.5,color=colors[i])
ax.set_theta_zero_location('N')
ax.set_theta_direction(-1)
ax.set_title('讀取Excel作風玫瑰圖(制作:李小濱)', fontsize=12)
ax.tick_params(labelsize=15)
ax.set_yticks([100,200,300,400,500])
cb = mpl.colorbar.ColorbarBase(ax1, cmap=cmap, norm=norm)
cb.set_label("個數統(tǒng)計標識色",size=12)
cb.ax.tick_params(labelsize=14)
plt.show()
4.1.2運行結果如下圖:
5.結語:
Pytnon作為一門通用語言,簡潔效率、易于維護,擁有強大的科學計算庫。因此Python非常適合進行各類氣象數據、氣象報表的處理,使數據可視化、具象化。
參考文獻:
[1]張若愚.Python科學計算[M].清華大學出版社
[2]Wes McKinney.利用Python進行數據分析.Jupyter
作者簡介:李小濱(1984—),男,漢族,河北滄州人,工程師,在新疆和靜縣巴音布魯克氣象站從事測報、裝備保障等工作。