#读取数据
data = pd.read_excel('XXX.xlsx', sheet_name='Sheet0',usecols=['ID','hour', 'WS','WD'])
df = pd.DataFrame(data)
names = data['ID'].unique()
for name in names:
dt=data.loc[data['ID']==name,:]
# 计算每个站点的风速和风向的最小值和最大值
# y_min, y_max = dt['WS'].min() - 0.5, dt['WS'].max() + 0.5 #设置y轴显示的范围
这里有两个细节,一是u和v分别对应的sin和cos函数,不能写反;二是公式应该是风速的负值*sin/cos(角度)
x = dt['hour'] #绘制的小时变化,需要读取时间
u = -dt['WS'] * np.sin(np.radians(dt['WD'])) # 将风向转换为x方向的分量
v = -dt['WS'] * np.cos(np.radians(dt['WD'])) # 将风向转换为y方向的分量
最后就是绘图了
x = dt['hour'] #绘制的小时变化,需要读取时间
u = -dt['WS'] * np.sin(np.radians(dt['WD'])) # 将风向转换为x方向的分量