#风廓线
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from pylab import * #支持中文
from matplotlib.font_manager import FontProperties #标题中文
#气压层
p = np.array([1000,925,850,700,600,500,450,400,300,250])
#U分量
u = np.array([[-0.39,0.11,3.1,10.7,16.61,24.0,20.31,33.43,49.32,59.21],
[-0.39,0.11,3.1,10.7,16.61,24.0,20.31,33.43,49.32,59.21],
[-0.39,0.11,3.1,10.7,16.61,24.0,20.31,33.43,49.32,59.21]]).transpose()
#V分量
v = np.array([[-0.57,-0.75,-1.09,-0.79,-0.48,-0.04,-0.26,0.96,2.87,4.41],
[-0.57,-0.75,-1.09,-0.79,-0.48,-0.04,-0.26,0.96,2.87,4.41],
[-0.57,-0.75,-1.09,-0.79,-0.48,-0.04,-0.26,0.96,2.87,4.41]]).transpose()
#时间
time = pd.date_range(start='2023-07-10',periods=3,freq='3H')
#绘图
fig = plt.figure(figsize = (8,7))
ax1 = fig.add_subplot()
q1=ax1.barbs(range(time.shape[0]),p,u,v,color='b')
#q1 = ax1.barbs(p,u,v,barb_increments=barb_increments)
#barb_increments = {'half':2,'full':4,'flag':20} #风向杆设置
#标签
#对数坐标轴
ax1.set_yscale('symlog') #气压是非等比坐标
#图上显示的坐标轴范围
ax1.set_ylim(1050,200)
ax1.set_xlim(-1,3)
#图上显示的坐标刻度
ax1.set_yticks([1000,925,850,700,600,500,450,400,300,250])
ax1.set_xticks(np.arange(0,3,1))
#图上显示的坐标刻度文字
ax1.set_yticklabels([1000,925,850,700,600,500,450,400,300,250])
ax1.set_xticklabels(time)
#图标题
font = FontProperties(fname=r"c:\windows\fonts\simsun.ttc",size=20)
ax1.set_title('高空风预报产品' ,loc='center',fontproperties=font)
plt.show()