爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 49574|回复: 29

[经验总结] pyton画青藏高原及要素散点图

  [复制链接]

新浪微博达人勋

发表于 2017-12-15 18:28:48 | 显示全部楼层 |阅读模式

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

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

x
今天周末参考(http://bbs.06climate.com/forum.php?mod=viewthread&tid=38961)用python画了一下青藏高原及西藏地区降水量的散点图,分享之大家可以参考!cmaps(http://bbs.06climate.com/forum.php?mod=viewthread&tid=43521
  1. import cmaps
  2. import pandas as pd
  3. import numpy as np
  4. from netCDF4 import Dataset
  5. import matplotlib.pyplot as plt
  6. from mpl_toolkits.basemap import Basemap


  7. plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文
  8. plt.rcParams['axes.unicode_minus']=False #用来正常显示负号


  9. # 打开cvs数据
  10. data_all = pd.read_csv('rain.dat',header=None, names=['站点','站号','lons','lats','降水量','气温'])
  11. # 打开高程数据
  12. deg_data = Dataset('elev.0.25-deg.nc','r')
  13. data = deg_data.variables['data'][0,:,:]
  14. # 缺测值maske掉
  15. data = np.ma.masked_values(data,32767)
  16. lon = deg_data.variables['lon'][:]
  17. lat = deg_data.variables['lat'][:]
  18. # data_units = deg_data['data'].units
  19. lon, lat = np.meshgrid(lon, lat)


  20. # 画图
  21. fig = plt.figure(figsize=(16,16))
  22. # 设置全局字体等
  23. plt.rc('font',size=15,weight='bold')
  24. plt.subplot(121)
  25. m = Basemap(projection='cyl',llcrnrlat=25,llcrnrlon=70,urcrnrlat=45,urcrnrlon=110)
  26. # 加载中国地图文件
  27. m.readshapefile('china_shp/cnhimap','cnhimap.shp',linewidth=1,color ='k')
  28. # 加载青藏高原边界文件
  29. m.readshapefile('DBATP/DBATP_Line','DBATP_Line.shp',linewidth = 2,color='r')
  30. x,y = m(lon,lat)
  31. levels = np.linspace(3000,np.max(data),50)
  32. cf = m.contourf(x,y,data,levels=levels,cmap=cmaps.MPL_gist_earth)
  33. cbar = m.colorbar(cf,location='bottom',size='5%',pad='15%',
  34.     ticks=np.linspace(3000,np.max(data),10),label='m')
  35. lon_num = np.arange(70,111,5)
  36. lon_name = ['70°','75°','80°','85°','90°','95°','100°','105°','110°E']
  37. lat_num =  np.arange(25,46,5)
  38. lat_name = ['25°','30°','35°','40°','45°N']
  39. plt.yticks(lat_num,lat_name)
  40. plt.xticks(lon_num,lon_name)
  41. plt.title('(a)')
  42. plt.subplot(122)
  43. m = Basemap(projection='cyl',llcrnrlat=25,llcrnrlon=70,urcrnrlat=45,urcrnrlon=110)
  44. # 加载中国地图文件
  45. m.readshapefile('china_shp/cnhimap','cnhimap.shp',linewidth=1,color ='black')
  46. # 加载青藏高原边界文件
  47. m.readshapefile('DBATP/DBATP_Line','DBATP_Line.shp',linewidth = 2,color='red')
  48. x,y = m(data_all['lons'],data_all['lats'])
  49. st = m.scatter(x,y,c=data_all['降水量'],s=data_all['降水量'],marker='o',cmap=cmaps.MPL_BuGn)
  50. cbar = m.colorbar(st,location='bottom',size='5%',pad='15%',
  51.                   ticks=np.linspace(np.min(data_all['降水量']),np.max(data_all['降水量']),10),
  52.                   label='mm',format='%.1f',extend='max')

  53. lon_num = np.arange(70,111,5)
  54. lon_name = ['70°','75°','80°','85°','90°','95°','100°','105°','110°E']
  55. lat_num =  np.arange(25,46,5)
  56. lat_name = ['25°','30°','35°','40°','45°N']
  57. plt.yticks(lat_num,lat_name)
  58. plt.xticks(lon_num,lon_name)
  59. plt.title('(b)')
  60. plt.savefig('map_data_test.png', bbox_inches='tight',dpi=300)
复制代码


map_data_test.png

map_data_test.py

2.68 KB, 下载次数: 86, 下载积分: 金钱 -5

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

新浪微博达人勋

发表于 2017-12-15 20:28:15 | 显示全部楼层
楼主厉害,果断收藏
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 21:04:09 | 显示全部楼层

谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:16:33 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:16:37 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:16:40 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:16:59 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:17:02 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-15 23:17:06 | 显示全部楼层
谢谢分享

(吐槽下帖子题目的拼写错误)
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2017-12-18 14:07:03 | 显示全部楼层
感谢分享,学习一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

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

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

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