您的位置:首页 > 编程语言 > Python开发

利用PYTHON畫的各種圖

2016-09-29 16:32 399 查看




__author__ = 'kong'
import matplotlib
from mpl_toolkits.basemap import Basemap, shiftgrid#,cm
from matplotlib import cm
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
import netCDF4 as nc
import numpy as np
from matplotlib import gridspec
import math
import matplotlib.tri as tri
import matplotlib.colors as matcolor

def drawlljfrequency1():
#draw llj frequency for every month every hour
da=nc.Dataset("data//lljfrequency")
month=da.variables["month"][:]
hour=da.variables["hour"][:]
lljnum=da.variables["lljnum"][:]
totalnum=da.variables["totalnum"][:]
data=lljnum/totalnum
plt.matshow(data,cmap=plt.cm.seismic,fignum=0)
plt.colorbar(orientation="horizontal")
plt.xticks(hour)
plt.yticks(np.arange(3),("May","Jun","Jul"))
plt.xlabel("Hour")
plt.ylabel("Month")
plt.savefig("20160921//1"+".png", dpi=1000)#max dpi2300
plt.show()

def drawlljfrequency2():
#draw llj frequency for every hour
da=nc.Dataset("data//lljfrequency")
month=da.variables["month"][:]
hour=da.variables["hour"][:]
lljnum=da.variables["lljnum"][:]
totalnum=da.variables["totalnum"][:]
data=np.sum(lljnum,0)/np.sum(totalnum,0)
plt.bar(np.arange(0,24,1),data,1,color="royalblue")
plt.xticks(0.5+np.arange(0,24,1),np.arange(0,24,1))
plt.xlim([0,24])
plt.xlabel("Hour")
plt.ylabel("Percent Frequency of Occurrence")
plt.savefig("20160921//2"+".png", dpi=1000)#max dpi2300
plt.show()

def drawlljfrequency3():
#draw llj frequency for every month
da=nc.Dataset("data//lljfrequency")
month=da.variables["month"][:]
hour=da.variables["hour"][:]
lljnum=da.variables["lljnum"][:]
totalnum=da.variables["totalnum"][:]
data=np.sum(lljnum,1)/np.sum(totalnum,1)
plt.barh(np.arange(0,3,1),data,1,color="royalblue")
plt.yticks(0.5+np.arange(0,3,1),["May","Jun","Jul"])
plt.xticks([0,data[-1]],["",""])
for i in np.arange(0,3,1):
plt.text(data[i]/2,0.5+i,data[i],weight="bold")
plt.ylabel("Month")
plt.xlabel("Percent Frequency of Occurrence")
plt.savefig("20160921//3"+".png", dpi=1000)#max dpi2300
plt.show()

def drawheightdis():
#draw llj height distritubion
da=nc.Dataset("data//lljheight")
aa=da.variables["num"][:]
bb=da.variables["xlabel"][:]
plt.bar(bb[0:-1],aa,50,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Height (m)")
plt.savefig("20160921//4"+".png", dpi=1000)#max dpi2300
plt.show()

def drawwindspedis():
#draw llj wind speed distritubion
da=nc.Dataset("data//lljwind")
windaa=da.variables["wind_num"][:]
windbb=da.variables["wind_xlabel"][:]
plt.bar(windbb[0:-1],windaa,0.5,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Wind (m/s)")
plt.savefig("20160921//5"+".png", dpi=1000)#max dpi2300
plt.show()

def drawwinddirdis():
#draw llj wind direction distritubion
da=nc.Dataset("data//lljwind")
degaa=da.variables["d_num"][:]
degbb=da.variables["d_xlabel"][:]
plt.bar(degbb[0:-1],degaa,6,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Wind Direction(degree)")
plt.savefig("20160921//6"+".png", dpi=1000)#max dpi2300
plt.show()

def draw950average1():
month=7
da=nc.Dataset("data//950hPa_average_in_0%d"%month)
u=da.variables["u"][:]
v=da.variables["v"][:]
z=da.variables["z"][:]
wind=da.variables["wind"][:]
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
plt.figure()
lon1=105
lon2=111
lat1=18.5
lat2=21
m = Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='h')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("950hPa in %d"%month,x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
print(np.min(z))
print(math.floor(np.min(z)))
print(np.max(z))
print(math.ceil(np.max(z)))
csslev = np.arange(math.floor(np.min(z)),math.ceil(np.max(z)),1)
css = m.contour(x,y,z,csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
#cslev = np.arange(np.min(wind)-0.1,np.max(wind)+0.1,0.1)
cslev = np.arange(4.3,12,0.1)
cs = m.contourf(x,y,wind,cslev,cmap=cm.coolwarm)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('average wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=20,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.savefig("20160921//averagein%d"%month+".png", dpi=1000)#max dpi2300
#plt.show()

def draw950average2():
month=5
da=nc.Dataset("data//950hPa_average_in_0%d"%month)
u=da.variables["u"][:]
v=da.variables["v"][:]
z=da.variables["z"][:]
wind=np.sqrt(u**2+v**2)
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
plt.figure()
lon1=105
lon2=111
lat1=18.5
lat2=21
m = Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='h')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("950hPa in %d"%month,x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
print(np.min(z))
print(math.floor(np.min(z)))
print(np.max(z))
print(math.ceil(np.max(z)))
csslev = np.arange(math.floor(np.min(z)),math.ceil(np.max(z)),1)
css = m.contour(x,y,z,csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
#cslev = np.arange(np.min(wind)-0.1,np.max(wind)+0.1,0.1)
cslev = np.arange(0,11.2,0.1)
cs = m.contourf(x,y,wind,cslev,cmap=cm.coolwarm)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=20,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.savefig("20160921//average2in%d"%month+".png", dpi=1000)#max dpi2300
#plt.show()

def drawgeowindspedis():
#draw llj geo wind speed distritubion
da=nc.Dataset("data//lljgeowind")
windaa=da.variables["wind_num"][:]
windbb=da.variables["wind_xlabel"][:]
plt.bar(windbb[0:-1],windaa,0.5,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Geo Wind (m/s)")
plt.savefig("20160921//9"+".png", dpi=1000)#max dpi2300

def drawgeowinddiedis():
#draw llj geo wind direction distritubion
da=nc.Dataset("data//lljgeowind")
degaa=da.variables["d_num"][:]
degbb=da.variables["d_xlabel"][:]
plt.bar(degbb[0:-1],degaa,6,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Geo Wind Direction(degree)")
plt.savefig("20160921//10"+".png", dpi=1000)#max dpi2300
#plt.show()

def drawageowindspedis():
#draw llj ageo wind speed distritubion
da=nc.Dataset("data//lljageowind")
windaa=da.variables["wind_num"][:]
windbb=da.variables["wind_xlabel"][:]
plt.bar(windbb[0:-1],windaa,0.5,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Ageo Wind (m/s)")
plt.savefig("20160921//11"+".png", dpi=1000)#max dpi2300
#plt.show()

def drawageowinddirdis():
#draw llj ageo wind direction distritubion
da=nc.Dataset("data//lljageowind")
degaa=da.variables["d_num"][:]
degbb=da.variables["d_xlabel"][:]
plt.bar(degbb[0:-1],degaa,6,color="royalblue")
plt.ylabel("Frequency")
plt.xlabel("Ageo Wind Direction(degree)")
plt.savefig("20160921//12"+".png", dpi=1000)#max dpi2300
#plt.show()

def drawwindrose():

filename="data//lljageowindrosedata"
plttitle="AGeo Wind Rose when LLJ"

da=nc.Dataset(filename)
a=da.variables["a"][:]
b=da.variables["b"][:]
c=da.variables["c"][:]
n=da.data_n
nn=da.data_nn
da.close()

'''
da=nc.Dataset("data//lljwindrosedata")
aaa=da.variables["a"][:]
da.close()
a=a0-aaa
'''

aa=a.flatten()
bb=(b[0:-1]+b[1:])/2
cc=(c[0:-1]+c[1:])/2

bbb=np.repeat(bb[np.newaxis,...],nn)
ccc=np.zeros(nn*nn)
for i in range(nn):
ccc[nn*i:nn*i+nn]=cc[:]

np.set_printoptions(threshold='nan')
triang = tri.Triangulation(bbb*np.sin(ccc),bbb*np.cos(ccc))
plt.tricontourf(triang, aa,levels=np.arange(0,np.max(aa)*1.1,1000))
plt.colorbar()

my_r=np.arange(0,50,10)
for i in my_r:
plt.plot(i*np.cos(ccc[0:n]),i*np.sin(ccc[0:n]),'r-')
plt.plot([-70,70],[0,0],'r')
plt.plot([0,0],[-70,70],'r')

avg_wind=np.zeros(np.shape(cc))
i_cc=0
for i_angle in cc:
avg_wind[i_cc]=np.sum(a[:,i_cc]*bb)/np.sum(a[:,i_cc])
i_cc=i_cc+1

new_avg_wind=np.zeros(np.shape(cc)[0]+1)
new_cc=np.zeros(np.shape(cc)[0]+1)
new_avg_wind[0:-1]=avg_wind
new_cc[0:-1]=cc
new_avg_wind[-1]=avg_wind[0]
new_cc[-1]=cc[0]
plt.plot(new_avg_wind*np.cos(new_cc),new_avg_wind*np.sin(new_cc),'w-')

plt.title(plttitle)
plt.gca().set_aspect('equal')
plt.savefig("20160921//"+filename[6:-4]+".png", dpi=1000)#max dpi2300

def draw950type3():
filename="950hPa_type3LLJ_swLLJ"
da=nc.Dataset("data//%s"%filename)
u=da.variables["u"][:]
v=da.variables["v"][:]
z=da.variables["z"][:]
avadata=np.where(u<10000)
wind=np.sqrt(u**2+v**2)
np.set_printoptions(threshold="nan")
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
plt.figure()
lon1=105
lon2=111
lat1=18.5
lat2=21

m = Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='h')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("%s %s"%(filename[0:6],filename[-5:]),x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
print(np.min(wind[avadata]))
print(np.max(wind[avadata]))
csslev = np.arange(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata])),10)
css = m.contour(x,y,z,csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
cslev = np.arange(3,138,0.1)
cs = m.contourf(x,y,wind,cslev,cmap=cm.coolwarm,vmax=14,vmin=8)
#cslev = np.arange(0,11,0.1)
#cs = m.contourf(x,y,wind,cslev,cmap=cm.coolwarm,vmax=7,vmin=2)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=100,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.figtext(0.1,0.1,'contour= %d to %d'%(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata]))),fontsize=12)
plt.savefig("20160921//pic_of_%s"%filename+".png", dpi=1000)#max dpi2300
#plt.show()

def draw950type3_num():
filename="950hPa_type3LLJ_noLLJ"
da=nc.Dataset("data//%s"%filename)
u=da.variables["u"][:]
v=da.variables["v"][:]
z=da.variables["z"][:]
num=da.variables["num"][:]
avadata=np.where(u<10000)
np.set_printoptions(threshold="nan")
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
plt.figure()
lon1=105
lon2=111
lat1=18.5
lat2=21

m = Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='h')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("%s %s_num"%(filename[0:6],filename[-5:]),x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
csslev = np.arange(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata])),10)
css = m.contour(x,y,z,csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
cslev = np.arange(0,np.ceil(np.max(num))*1.1,np.ceil(np.max(num))/100)
cs = m.contourf(x,y,num,cslev,cmap=cm.coolwarm)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=100,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.figtext(0.1,0.1,'contour= %d to %d'%(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata]))),fontsize=12)
plt.savefig("20160921//pic_of_%s_num"%filename+".png", dpi=1000)#max dpi2300
#plt.show()

def draw950type1():
filename="950hPa_type1LLJ_swLLJ_June"
da=nc.Dataset("data//%s"%filename)
uu=da.variables["u"][:]
vv=da.variables["v"][:]
zz=da.variables["z"][:]
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
da.close()

lon1=105
lon2=111
lat1=18.5
lat2=21

for ihour in range(0,24):
print('ihour=%d'%ihour)
u=uu[ihour,:,:]
v=vv[ihour,:,:]
z=zz[ihour,:,:]
wind=np.sqrt(u**2+v**2)
avadata=np.where(np.all([u<10000,v<10000],0))
plt.figure()

m=Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='c')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("sw wind%d"%ihour,x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
print(np.min(wind[avadata]))
print(np.max(wind[avadata]))
##--contour--##
csslev = np.arange(400,650,20)
css = m.contour(x,y,z[:,:],csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
##--contourf--##
cslev = np.arange(0,150,0.1)
#cs = m.contourf(x,y,wind,cslev,cmap=cm.coolwarm,vmax=20,vmin=0)
cs = m.contourf(x,y,wind,cmap=cm.coolwarm)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=100,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.figtext(0.1,0.1,'contour= %d to %d'%(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata]))),fontsize=12)
plt.savefig("20160921//hour//pic_of_%shour%d.png"%(filename,ihour), dpi=1000)#max dpi2300
plt.close()

def draw950type1_num():
filename="950hPa_type1LLJ_swLLJ_June"
da=nc.Dataset("data//%s"%filename)
uu=da.variables["u"][:]
vv=da.variables["v"][:]
zz=da.variables["z"][:]
numm=da.variables["num"][:]
lon=da.variables["lon"][:]
lat=da.variables["lat"][:]
da.close()

for ihour in range(0,24):
print('ihour=%d'%ihour)
u=uu[ihour,:,:]
v=vv[ihour,:,:]
z=zz[ihour,:,:]
num=numm[ihour,:,:]
wind=np.sqrt(u**2+v**2)
avadata=np.where(u<10000)
plt.figure()
lon1=105
lon2=111
lat1=18.5
lat2=21

m = Basemap(projection='rotpole',o_lat_p=84,o_lon_p=00,lon_0=0,lat_0=0,lat_1=lat1,lat_2=lat2,lon_1=lon1+1,lon_2=lon2-1,llcrnrlat=lat1,urcrnrlat=lat2,llcrnrlon=lon1,urcrnrlon=lon2,resolution='c')
m.drawcoastlines(color='#2e5244',linewidth=1)
m.drawcountries(color='#2e5244',linewidth=1)
m.drawparallels(np.arange(0.,90.,1),labels=[1,0,0,0])
m.drawmeridians(np.arange(0.,180.1),labels=[0,0,0,1])
plt.title("swLLJ_num%d"%ihour,x=0.5,y=1.15,size='xx-large')
x, y = m(lon,lat)
##--contour--##
csslev = np.arange(400,650,20)
css = m.contour(x,y,z,csslev,linewidths=0.8,colors='k')
plt.clabel(css, inline=0,fontsize=10)
##--contourf--##
cslev = np.arange(0,90,0.1)
cs = m.contourf(x,y,num,cslev,cmap=cm.coolwarm)
cbar = m.colorbar(cs,location='bottom',pad="8%")
cbar.set_label('wind speed (m/s)')
vectorsize=10
rho=3
Q = m.quiver(x[::rho,::rho],y[::rho,::rho],u[::rho,::rho],v[::rho,::rho],width=vectorsize,headwidth=vectorsize*2/3,headlength=vectorsize/2,headaxislength=vectorsize/2,minlength=0,units='dots',angles='xy', scale_units='xy', scale=100,minshaft=0.5)
qk = plt.quiverkey(Q, 0.1,1.1, 20, '20 m/s', labelpos='S')
plt.figtext(0.1,0.1,'contour= %d to %d'%(math.floor(np.min(z[avadata])),math.ceil(np.max(z[avadata]))),fontsize=12)
plt.savefig("20160921//hour//pic_of_%shour%d_num"%(filename,ihour)+".png", dpi=1000)#max dpi2300
plt.close()

def hour24windrose():
filename="950hPa_type1LLJ_swLLJ_June"
da=nc.Dataset("data//%s"%filename)
uu=da.variables["u"][:]
vv=da.variables["v"][:]
da.close()
uavg=np.zeros(24)
vavg=np.zeros(24)
for ihour in range(0,24):
u=uu[ihour,:,:]
v=vv[ihour,:,:]
avail=np.where(np.all([u<10000,v<10000],0))
uavg[ihour]=np.mean(u[avail])
vavg[ihour]=np.mean(v[avail])
del(avail)

fig, ax = plt.subplots()
plt.axes(polar=True)
ang=np.angle(uavg+vavg*1j)
val=np.sqrt(uavg**2+vavg**2)
plt.plot(ang,val,'o-')
for ihour in range(0,24):
plt.text(ang[ihour],val[ihour],"%d"%ihour)
ax.plot([ang[23],ang[0]],[val[23],val[0]],'b-')
'''
plt.plot(uavg,vavg,'o-')
for ihour in range(0,24):
ax.text(uavg[ihour],vavg[ihour],"%d(%d)"%(ihour,np.angle(uavg[ihour]+vavg[ihour]*1j,deg=True)))
ax.plot([uavg[23],uavg[0]],[vavg[23],vavg[0]],'b-')
'''
plt.title(filename)
plt.savefig("20160921//hour//hour24windrose_June.png", dpi=100)

hour24windrose()

'''
plt.figure(figsize=(8, 6))
gs = gridspec.GridSpec(2, 2, width_ratios=[3, 1],height_ratios=[1,1])
plt.subplot(gs[2])
plt.show()

'''
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: