这几天一直在躺尸,只能找一些陈年材料和汇总了

本节提要:matplotlib绘图时,一些实用的解决办法。包括降水量等值线的色号、风矢杆显示不正确的问题、台风符号、散点图表示数值的两种办法、关于colobar的一些常用参数。

一、降水量等值线的色号

作为业务上常见应用,在绘制降水量等值线填色图时,不能使用系统默认的colormap,而需要指定降水等级和填色。本文使用中央气象台官网的降水量图片,通过一个木函中的取色功能调取颜色,参考了微信群中一个大佬提供的代码(具体是谁已经忘了,希望大佬不会砸门@

@)。

ax.bar(x1,y1,color='#A6F28F')ax.bar(x2,y2,color='#3DBA3D')ax.bar(x3,y3,color='#61BBFF')ax.bar(x4,y4,color='#0000FF')ax.bar(x5,y5,color='#FA00FA')ax.bar(x6,y6,color='#800040')

二、风矢杆显示了过多的圆圈

很久之前有个大佬发现自己绘制的图像出现了很多不正确的圆圈,巨佬二号提出了解决方案——因为中外风矢杆量级不一样,所以需要修改风矢杆的风速大小。

大佬出现问题的图是这一张:

我尝试本地风场绘图:

plt.barbs(lon,lat,u,v,zorder=5)

如图,确实出现了许多圆圈,然而在实际数据中,这些数值为1m\s。通过巨佬提供的解决方案,绘制了新的风场图:

plt.barbs(lon,lat,u,v,barb_increments={'half':2,'full':4,'flag':20},zorder=5)

barb_increments={'half':2,'full':4,'flag':20}这一句,修改了风矢杆长短杆线和三角分别代表的风速大小。

三、台风符号

在将cartopy官网例子本土化的过程中,我发现matplotlib的marker中没有现成的台风符号,于是群内巨佬三号提供了解决方案:

方案一:通过数字6和9的叠加来产生台风符号

ax.scatter(x,y2,s=200,marker='$6$',color='crimson')ax.scatter(x,y3,s=200,marker='$9$',color='crimson')

方案二:通过自定义台风符号来绘制

def get_hurricane():u = np.array([ [2.444,7.553],[0.513,7.046],[-1.243,5.433],[-2.353,2.975],[-2.578,0.092],[-2.075,-1.795],[-0.336,-2.870],[2.609,-2.016] ])u[:,0] -= 0.098codes = [1] + [2]*(len(u)-2) + [2]u = np.append(u, -u[::-1], axis=0)codes += codesreturn mpath.Path(3*u, codes, closed=False)hurricane = get_hurricane()ax.scatter(x,y1, s=350, marker=hurricane,edgecolors="crimson", facecolors='none', linewidth=3)

表面上看起来好像两个都可以在绘图实例中使用,但是6与9叠加有一个致命缺陷就是对每一个位置都需要微调,数字9必须比数字6低一点,这样才能产生台风符号,否则就是这样的:

总结下来,在绘制一个台风符号时,可以使用6与9叠加,绘制多个台风符号时,推荐使用def 台风(复制粘贴到程序中即可使用)

四、散点图表示数值大小的两种办法

散点图常用的有两种表示数值大小的办法,一种是通过控制s,即圆圈直径来表示数值;一种是通过控制颜色映射来表示数值。

ax1.scatter(lon,lat,s=number*50,c='blue',alpha=0.75,edgecolor='k')

ax.scatter(lon,lat,s=150,c=number,cmap='cool',alpha=0.75)

五、Colorbar的一些参数

经常有同学在群里讨论色条的尖尖角是怎么来的,于是将color常用的一些参数命令翻译出来了。

ax

代表你需要传入色条的ax

shrink=0.88

代表色条的相对长度

orientation='horizontal'

代表色条时横向还是竖向,vertical代表垂直;horizontal代表水平

cax

表示你需要绘制色条的绝对位置

pad

色条和子图ax之间的距离

extend=’neither’

色条的两头是否变尖,默认为neither,两头为方的。both表示两头变尖。min表示数值小的那头变尖。max表示数值大的那头变尖

ticks

默认将根据你的ax里的间距大小自动分配,可以传入一个列表自定义间距

format

控制刻度样式,如‘%.3f’表示保留三位小数

还是通过上面地闪频次的图来表现参数命令:

b=plt.colorbar(a,shrink=1,orientation='vertical',pad=0.005,extend='max',format='%.2f')

修改了shrink,可以看出其和主图的相对长度变化了。

修改了orientation,色条变为垂直方向。

修改了pad,可以看出色条和子图距离非常近了。

修改了extend,只显示max,即最大值方向变尖。

修改了format,使得刻度显示了两位小数。

关于cax呢,这里也展示一个例子:

position=plt.axes([0.5,0,0.1,1])b=plt.colorbar(a,cax=position,shrink=1,orientation='vertical',pad=0.005,extend='max',format='%.2f')

我们给了colorbar的cax一个绝对位置[0.5,0],表示色条从图上的相对于x轴一半的位置,相对于y轴的起点位置开始绘制。这样色条就被放在中间位置了。我们尝试修改绝对位置的值来深入理解。

position=plt.axes([0.25,0,0.4,0.75])b=plt.colorbar(a,cax=position,shrink=1,orientation='vertical',pad=0.005,extend='max',format='%.2f')

可以看出,色条被移动到差不多x轴上0.25的位置了,色条变宽了,变短了,因为我们将[0.5,0,0.1,1]变成了[0.25,0,0.4,0.75],第三个数表示色条x方向的变化,0.1变为0.4,所以变宽了。第四个数表示色条y方向的变化,1变成了0.75,所以变短了。

Cartopy专辑已经上线

往期回顾:

欢迎关注云台书使公众号

python图片分析中央气象台降水_Python气象绘图教程(十)相关推荐

  1. python图片分析中央气象台降水_python读取gpm卫星降水并绘制降水分布图

    引言 好久好久没有更新了,来杭州的这几天真的是快把人烤熟了,好在学校的空调给力,连厕所都是中央空调,有钱真的会玩呀...... 继上一篇博客 #!/usr/bin/env python # -*- c ...

  2. python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)

    前段时间袭击中国的超强台风"利奇马",以及这两天袭击美国的五级飓风"多利安",让我们感受到了大自然的力量.所以,今天分享一个简单的Python实例,也算是延续前 ...

  3. python图片分析中央气象台降水量预报_获取中央气象台网的气象数据 全流程技术解析(python 爬虫)...

    一.Python环境搭建 下载安装python 下载安装PyCharm,Community版即可 理论上应该先安装python再安装IDE(PyCharm),必要时按网上要求进行环境变量设置. 二.爬 ...

  4. python气象绘图_Python气象绘图教程(三)

    更多的关于基础折线图技巧 前面已经讲了很多关于折线图的常用参数,但是像颜色关键词在黑白文献中应该如何修改呢?plot()提供了一个marker=' '参数,其具体变化如下: plt.plot(x,te ...

  5. python绘制剖面图_Python气象绘图教程—(十九)剖面图

    本节提要:简要谈谈地形剖面图.纬度高度剖面图.时间纬度图的绘制方法. 提要中提到的这几种图形都是在气象上比较常用的,地形剖面主要研究地貌对降雨.气流的影响作用:纬度高度剖面图可以用来分析降雨的某些条件 ...

  6. python气象学_Python气象绘图教程(二)

    大多数的人整天对着教材课本大概都会昏昏欲睡,这时候就需要不可名说 粉色 网站出马了: 学习网站哪家最强啊?(战术仰头) 请在搜索栏输入python入门之类的来获取更多资源吧,另外强烈推荐一个大神的视频 ...

  7. Python 柱状图 横坐标 名字_Python气象绘图教程(四)

    本节提要:回顾复习,新的调整命令. 一.回顾复习 前面讲到Python库包的下载与安装,推荐使用conda命令进行安装,通过conda list查看当前已经安装好的库包及版本. 画图步骤:①impor ...

  8. python气象绘图_Python气象绘图教程特刊(一)

    今天停更基础教程(我就鸽了,你来打我呀(开个玩笑)). 结合气象家园上萝卜和晋陵(姑且这么称呼吧,希望他们不介意)的白化,能实现业务上的基础需求.现在我撰写了详细的使用流程,maskout程序知识版权 ...

  9. python图片分析中央气象台降水量预报_全国天气降水量预报图数据接口

    全国天气降水量预报图接口 免费在线测试此接口(需要登录) 接口每两小时更新一次,一天调取1-2次即可,返回3张图:24.48.72小时,请勿频繁调用!. 请求方式及url: 请求方式:GET 接口地址 ...

最新文章

  1. MFC文件操作大全,打开,保存,复制,删除,查找等
  2. 【Avalon】Avalon笔记(解析Dom模板树,按自己的规范)
  3. 关于 Node.js 应用里使用 winston 进行日志记录的最佳实践
  4. 前端学习(2928):昨日回顾
  5. C/C++字符串处理库
  6. php学习总结,PHP学习的技巧和学习的要素总结
  7. weblogic部署步骤
  8. 蓝桥杯基础练习十六进制转十进制
  9. 【模板】字符串hash
  10. Ubuntu 14.04 配置iptables防火墙
  11. paip.ASP加密新总结
  12. moodle安装图解
  13. 5款工具帮你一键快速图片去水印(附送复杂水印去除教程)
  14. 判断单链表是否中心对称算法
  15. magicbook16使用心得,小技巧
  16. 网站关键词密度定义,关键词密度对网站优化有什么关系!
  17. python adf检验_python做adf检验
  18. web端用canvas把航拍图片实际场景渲染在高德卫星地图上面
  19. 关于东芝步进电机驱动芯片TB67S109AFNAG的电路原理分享
  20. 深度学习——Noisier2Noise

热门文章

  1. Hadoop源码编译介绍-尚硅谷大数据培训
  2. 下载的文件需要右键属性解除锁定的一次性解决方法
  3. zxing 生成二维码 带logo
  4. 硬纪元AI峰会实录|华捷艾米沈瑄:端加云才是AI和AR的未来
  5. Cocos2d-x + Android + Eclipse + Windows 8
  6. Axure|【教育】线下教育机构APP+后台管理系统
  7. C++ MFC (一)
  8. @JsonView 详解(理论+实战)
  9. java基于springboot食堂库存管理系统源码
  10. 博客之星活动改进建议