Python自学笔记――Matplotlib风羽自定义.doc

Python自学笔记――Matplotlib风羽自定义.doc

ID:55632133

大小:54.00 KB

页数:11页

时间:2020-05-21

Python自学笔记――Matplotlib风羽自定义.doc_第1页
Python自学笔记――Matplotlib风羽自定义.doc_第2页
Python自学笔记――Matplotlib风羽自定义.doc_第3页
Python自学笔记――Matplotlib风羽自定义.doc_第4页
Python自学笔记――Matplotlib风羽自定义.doc_第5页
资源描述:

《Python自学笔记――Matplotlib风羽自定义.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Python自学笔记——Matplotlib风羽自定义对于气象专业的小学生来说,风场是预报重要的参考数据,我们所知的风羽有四种:短线代表风速2m/s,长线代表风速4m/s,空心三角代表风速20m/s,实心三角代表风速50m/s。而matplotlib的风羽只有短线、长线、三角三种,而这里的三角不分空心实心,但是可通过改变风羽颜色为白色使三角变为空心形状,虽然这三种可以自定义各自代表的风速,但是仍与我们的使用习惯不符,即使把三角设成20m/s,原本一个实心三角就能表示的50m/s的风在matplotlib中需要两个三角

2、外加两条长线一条短线。为了迎合预报员的需求,我在研究了matplotlib的风场函数barbs()的源代码quiver.py文件后,对quiver.py做了适当的调整,使得matplotlib也有了空心三角和实心三角之分。一、函数barbs的使用barb(X,Y,U,V,,**kw)X:风场数据X坐标Y:风场数据Y坐标U:风的水平方向分量V:风的垂直方向分量'''Demonstrationofwindbarbplots'''importmatplotlib.pyplotaspltimportnumpyasnpx=np

3、.linspace(-5,5,5)X,Y=np.meshgrid(x,x)U,V=12*X,12*Ydata=[(-1.5,.5,-6,-6),(1,-1,-46,46),(-3,-1,11,-11),(1,1.5,80,80),(0.5,0.25,25,15),(-1.5,-0.5,-5,40)]data=np.array(data,dtype=[('x',np.float32),('y',np.float32),('u',np.float32),('v',np.float32)])#Defaultparamete

4、rs,uniformgridax=plt.subplot(2,2,1)ax.barbs(X,Y,U,V)#Arbitrarysetofvectors,makethemlongerandchangethepivotpoint#(pointaroundwhichthey'rerotated)tobethemiddleax=plt.subplot(2,2,2)ax.barbs(data['x'],data['y'],data['u'],data['v'],length=8,pivot='middle')#Showingco

5、lormappingwithuniformgrid.Fillthecircleforanemptybarb,#don'troundthevalues,andchangesomeofthesizeparametersax=plt.subplot(2,2,3)ax.barbs(X,Y,U,V,np.sqrt(U*U+V*V),fill_empty=True,rounding=False,sizes=dict(emptybarb=0.25,spacing=0.2,height=0.3))#Changecolorsaswel

6、lastheincrementsforpartsofthebarbsax=plt.subplot(2,2,4)ax.barbs(data['x'],data['y'],data['u'],data['v'],flagcolor='r',barbcolor=['b','g'],barb_increments=dict(half=10,full=20,flag=100),flip_barb=True)plt.show()二、源代码解读1.classBarbs()classBarbs(mcollections.PolyCo

7、llection):@docstring.interpddef__init__(self,ax,*args,**kw):'...'def_find_tails(self,mag,rounding=True,half=5,full=10,flag=50):'...'def_make_barbs(self,u,v,nflags,nbarbs,half_barb,empty_flag,length,pivot,sizes,fill_empty,flip):'...'defset_UVC(self,U,V,C=None):'

8、...'defset_offsets(self,xy):'...'通过读源代码可知类Barbs有五个方法分别为__init__、_find_tails、_make_barbs、set_UVC、set_offsets。2.__init__@docstring.interpddef__init__(self,ax,*args,**kw):"""Th

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。