python Basemap绘制contourf图

python Basemap 绘制contourf 图

Basemap 为python 附加的地图包,当需要绘制地图时通过Basemap 可以方便地调用,绘制地图边界等。

导入数据

参考博客python HDF 文件读取 中的数据Lat Lon 和data

绘图

导入Basemap 和绘图所用的包

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt 

导入basemap 和matplotlib

Basemap 绘制底图(地图)

fig = plt.figure()                                           
ax1 = fig.add_axes([0.1,0.1,0.8,0.8]) # 设置绘图区域
mm = Basemap(projection = 'cyl',llcrnrlat = Lat[0],urcrnrlat = Lat[-1],\
                      llcrnrlon = Lon[0],urcrnrlon = Lon[-1],ax = ax1)  # 设置投影方式:cyl为圆柱投影 llcrnrlat 为起始lat;urcrnrlat 为 终止lat
mm.drawcountries(linewidth = 0.25)  # 绘制国界线
mm.drawcoastlines(linewidth = 0.25) # 绘制海岸线
mm.drawmeridians(np.arange(0,180,10),labels = [False,True,True,False])  # 绘制等经度线 每隔10度画一条线,且标注经度
mm.drawparallels(np.arange(0,70,10),labels = [True,False,False,True])
mm.readshapefile('china_basic_map/bou2_4l','states')  # 读取中国各省边界,并绘图

contourf 图

Lat,Lon = np.meshgrid(Lat,Lon)
X,Y = mm(Lon,Lat)
lvls = np.linspace(-128,128,20)
C = mm.contourf(Lon,Lat,data,alpha = 0.5,cmap = plt.cm.RdBu,levels = lvls)                                                
cbar = mm.colorbar(C,'right',ticks = np.arange(-128,128,40),format = '%.1f')
font1 = {'family':'Time New Roman','weight':'normal','size':16}
plt.title('Surface Elevation',font1)   
plt.show()
plt.savefig('a.png')

版权声明:本文为qq_36159362原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。