爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 16341|回复: 5

[讨论] python快速绘图

[复制链接]

新浪微博达人勋

发表于 2020-2-4 23:51:08 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
python快速绘图,使用python简单绘制Anomaly SST的空间分布(python的nc文件读取,basemap的调用)
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. import netCDF4 as nc
  4. from mpl_toolkits.basemap import Basemap as mp

  5. indir='D:\\python_plot\\'
  6. obj = nc.Dataset(indir+'1979-2017.nc','r')
  7. for i in obj.variables.keys():
  8.     print(i)  
  9. print('---------------------------------------')
  10. print(obj)
  11. lat = obj.variables['latitude'][:]
  12. lon = obj.variables['longitude'][:]
  13. time = obj.variables['time'][344:]
  14. sst = obj.variables['sst'][:,:,:]
  15.                
  16. sst_1 = sst[344:,:,:]
  17. sst_aj = np.zeros((len(time),len(lat),len(lon)))
  18. for i in range(len(lat)):
  19.     for j in range(len(lon)):
  20.         for k in range(len(time)):
  21.             if sst_1[k,i,j] == -1000.0:
  22.                 sst_aj[k,i,j] = np.nan
  23.             else:
  24.                 sst_aj[k,i,j] = sst_1[k,i,j]
  25. sst_mean = np.mean(sst_aj,0)
  26. sst_g = sst_1[119,:,:] - sst_mean

  27. plt.figure(1, figsize=(10, 8))
  28. m = mp(llcrnrlon=-180, llcrnrlat=-85., urcrnrlon=180., urcrnrlat=85., resolution='c', projection='mill')
  29. m.drawcoastlines
  30. m.drawparallels(np.arange(-90, 90, 30),labels=[1, 0, 0, 0])
  31. m.drawmeridians(np.arange(m.lonmin, m.lonmax+30, 60), labels=[0, 0, 0, 1])
  32. cmap = plt.cm.get_cmap('RdYlBu')
  33. levels = np.arange(-5, 5, 0.7)
  34. xx, yy =np.meshgrid(lon, lat)
  35. xx, yy = m(xx, yy)
  36. m.contourf(xx, yy, sst_g, cmap=cmap,levels=levels)
  37. m.colorbar(label='sst', location='bottom', pad=0.3)
  38. plt.title(' Anomaly SST ',loc='left', fontsize=18)
  39. # =============================================================================
  40. # plt.show()
  41. # =============================================================================
  42. plt.savefig('Anomaly_SST.png',dpi=520)
  43. print('ok!!')
复制代码


1.png
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-2-13 16:35:54 | 显示全部楼层
不错,lz用Python绘图厉害啊!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-2-18 17:42:16 | 显示全部楼层
楼主,数据能分享一份吗?
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-3-1 18:19:48 | 显示全部楼层
basemap安装不上啊
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-9-23 16:54:23 | 显示全部楼层
EddyLiu 发表于 2020-3-1 18:19
basemap安装不上啊

改用cartopy
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2021-7-8 11:03:42 | 显示全部楼层
太感谢了 对我很有启发!!
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表