import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from scipy.interpolate import griddata
import netCDF4 as nc
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.colors as colors
import cmaps
import datetime
import xarray as xr
import cartopy.crs as ccrs
from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter
import sys
sys.path.append('/home/wangnan/data/py_map/')
import maps
#--- read data
trend=pd.read_excel('wn2.xlsx',None) #None默認讀取excel所有sheet
df=trend['autumn'] #選擇秋天的這個sheet
rate=np.array(df['ppbv/yr_au'])
olat=np.array(df['lat_au'])
olon=np.array(df['long_au'])
# ---------------load map
fig=plt.figure(num="figure1",figsize=(8.5,7))
print('{highlight:#^50s}'.format(highlight='plot map '))
box = [95, 140, 5, 40]
xstep = 10
ystep = 6
fig=plt.figure(num="figure1",figsize=(8.5,7))
axlevel1 = [0.1, 0.1, 0.65, 0.8]
maps.province_country_map(box=box,axlevel=axlevel1, xstep=xstep, ystep=ystep, labelon='on')
# ---------------定義RGB
cmap_color=cmaps.BlueDarkRed18
#---------------
#色標離散化,只顯示-4~4的刻度
normc = colors.BoundaryNorm(range(-4,5), ncolors=cmap_color.N, clip=True)
plt.tick_params(labelsize=16) #坐標軸字體大小
c3=plt.scatter(olon,olat,s=35,c=rate,vmax=4,vmin=-4,norm=normc,cmap=cmap_color) #vmin和vmax定義顏色的范圍
position = fig.add_axes([0.8, 0.18, 0.02, 0.62])
cbar=plt.colorbar(c3,cax=position,orientation='vertical')
cbar.ax.tick_params(labelsize=15) #colorbar fontsize
font = {'family' : 'serif',
'color' : 'black',
'weight' : 'normal',
'size' : 16,
}
cbar.set_label('O3 trend (ppb/yr)',fontdict=font) #colorbar的label和字體

image.png