一点说明:这个教程的出现是无计划的,所以缺乏提纲,很多人感觉每节之间没有系统。我可能在后面会进一步的归纳总结,以word文档或者pdf的样式上传至气象家园。

本节提要:简单的刻度属性、轴标签、刻度格式与生成、刻度标签的进一步操作、实用标题。

matplotlib最大的优势和劣势在于自己内部命令的随意性。比较系统的气象语言如NCL和Grads的每一个语句的实现方式基本上是一定的,然而matplotlib实现一种目的可以有多种操作方式。今天主要讲解图表的辅助性属性的修改。

一、简单的刻度属性

1.直接限定刻度范围

通过xlim、ylim限制图表轴线取值范围,比如plt.xlim(0,10)即将x轴范围限定在0~10;ax.set_ylim(0,10)对子图ax的y轴范围限定在0~10。

2.颠倒轴方向

通过1中的语句,我们可以颠倒轴的方向,比如plt.xlim(10,0)即将x轴的起始刻度变为10,终止刻度变为0;ax.set_ylim(10,0)将子图ax的y轴起始刻度变为10,终止刻度变为0。

3.修改刻度标签

通过plt.xticks(a,b),修改刻度标签,实例如下:

x1=[2,4,6,8,10]x2=[r'$h2$',r'$h4$',r'$h6$',r'$h8$',r'$h10$']plt.xticks(x1,x2)

通过ax.set_xticks(x1)与ax.set_xticklabels(x2)修改刻度标签,实例同上类似。

4.旋转刻度标签

通过plt.xticks(rotation=‘float’)或者ax.set_xticklabels(rotation=‘float’)旋转刻度标签,实例如下(rotation=90):

二、轴标签

轴标签是图表中重要的属性,对其进行灵活设置亦是十分重要的。

1.添加轴标签

通过plt.xlabel('str')设置x轴标签。

通过ax.set_xlabel('str')与ax.set_ylabel('str')设置轴标签。

通过ax.set(xlabel='str',ylabel='str')设置轴标签(这一句与上面分别设置标签等效)

2.修改轴标签样式

通过字典的方式修改轴标签,如:

font1={'size':10,'color':'red'}font2={'size':15,'color':'blue'}ax.set_xlabel('x轴',fontdict=font1)ax.set_ylabel('y轴',fontdict=font2)

3.旋转轴标签

通过ax.set_xlabel(rotation=90)旋转轴标签。

三、刻度格式与生成

在matpltlib的ticker模块中,提供了专门的刻度格式化命令。首先导入库包:

import matplotlib.ticker as mticker

首先简要介绍格式定位器(lcator),调用和修改locatr的命令为:ax.xaxis.set_major_locator()。其中ax表示需要修改的子图,xaxis与yaxis表示需要修改的轴,major与minor表示需要修改的主副刻度,locator表示调用格式定位器。

1.无刻度命令(Nulllocator)

无刻度命令使刻度不显示

ax.xaxis.set_major_locator(mticker.NullLocator())ax.yaxis.set_major_locator(mticker.NullLocator())

2.等距刻度命令(MultipleLocator)

使刻度以指定基数划分

ax.yaxis.set_major_locator(mticker.MultipleLocator(0.5))ax.yaxis.set_minor_locator(mticker.MultipleLocator(0.1))

我们设置了y轴主刻度的划分基数为0.5,所以主刻度均以每0.5单位划分,而参考前面原图,系统默认给出的是0.25;又设置了y轴的副刻度的划分基数为0.1,所以副刻度均以每0.1个单位划分,而参考原图,系统默认副刻度不显示,所以无副刻度。

3.刻度数量抑制命令(MaxNLocator)

该命令可以限制刻度的数量

ax.yaxis.set_major_locator(mticker.MaxNLocator(3))

可以看出,y轴只剩下3个刻度了,这是因为该命令限制y轴最多只能出现3个刻度,限制后,该命令会自动使剩下的刻度分布呈现合适状态。

4.均匀刻度命令(LinearLocator)

该命令使刻度按划分数量均匀显示

ax.yaxis.set_major_locator(mticker.LinearLocator(50))

按照我们的需求,刻度被均匀分为50。

5.刻度固定(FixedLocator)

ax.yaxis.set_major_locator(mticker.FixedLocator(np.arange(-0.75,0.75+0.1,0.25)))

可以看出,刻度被固定,即是超出了刻度也不再显示

然而,在气象领域的应用中,刻度的格式生成器的使用就少见的多了,我们最常用的,应该是在cartopy绘制地图的时候,从cartopy.mpl.ticker中引用的经纬度格式生成器。

from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatterax.xaxis.set_major_formatter(LongitudeFormatter(zero_direction_label=True))ax.yaxis.set_major_formatter(LatitudeFormatter())

大部分的格式生成不适用于气象,而更适合数学、金融等专业,因为他们的符号需求是远高于气象的。

四、刻度标签的进一步操作

matplotlib.pyplot中提供了一个模块以进一步定制我们的图表。该命令为ax.tick_params(),具体参数如下:

axis

指定修改的轴,如'x','y','both'

reset

重置,所有格式恢复默认

which

哪种刻度,如'major','minor','both'

direction

刻度的方向,如'in','out','inout'

length

刻度线长度

width

刻度线宽度

color

刻度线颜色

pad

刻度标签与刻度线距离

labelsize

刻度标签大小

labelcolor

刻度标签颜色

ax.tick_params(axis='x',labelcolor='red')与ax.set_xlabel(fontdict={'color':'red'}的效果应该是一样的。

还可以通过ax.spines['top'].set_color()语句调节框线颜色,通过ax.spines['bottom'].set_linewidth()语句调节框线粗细。通过一组图片示意:

ax.tick_params(axis='y',which='major',direction='in',length=15,color='r',pad=2,labelsize=10,labelcolor='cyan')ax.tick_params(axis='y',which='minor',direction='inout',length=5,color='g')ax.spines['top'].set_color('None')ax.spines['right'].set_color('None')ax.spines['bottom'].set_linewidth(5)

原图:

修改后的图片:

五、实用标题

简要介绍标题,实例如下:

ax.set_title('东亚地图',fontsize=20,loc='left')fontdict1={'color':'cyan'}ax.set_title('近代\n 海陆舆图',fontsize=10,loc='center',fontdict=fontdict1)fontdict2={'color':'red'}ax.set_title('1949-10-1\n00:00:00',fontsize=10,loc='right',fontdict=fontdict2)

往期回顾:

欢迎关注云台书使公众号

mysql 等距_Python气象绘图教程(十一)相关推荐

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

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

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

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

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

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

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

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

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

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

  6. 经纬度绘图_Python气象绘图教程(二十二)—mpl_toolkits.axes_grid1

    本节提要:挑选了matplotlib.mpl_toolkits.axes_grid1部件中比较有意思的几个类和功能简单解决一点点绘图中的常见问题. 一.make_axes_locatable 首先我们 ...

  7. python图片分析中央气象台降水_Python气象绘图教程(十)

    这几天一直在躺尸,只能找一些陈年材料和汇总了 本节提要:matplotlib绘图时,一些实用的解决办法.包括降水量等值线的色号.风矢杆显示不正确的问题.台风符号.散点图表示数值的两种办法.关于colo ...

  8. python气象绘图速成_Python气象绘图教程(十六)—Cartopy_6

    本节提要:使用cartopy进行市县的色块填色.模仿geopandas绘制颜色图 一.利用cartopy进行市县的色块填色 其实geopandas在这方面比cartopy更加专业,由于是基于panda ...

  9. python气象绘图速成_Python气象绘图Day-By-Day

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 本帖最后由 edwardli 于 2017-6-13 10:02 编辑 工作繁事多,先上结果供交流,回头不断细化. 我 ...

最新文章

  1. Linux下的C#连接Mysql数据库
  2. MPB:中科院城环所杨军组-​​​基于DNA宏条形码的水体浮游细菌群落测序建库方法...
  3. 基于二代和三代测序技术的柚子基因组混合拼装
  4. origin中文版散点图拟合曲线_「测试狗」Origin入门教程:如何进行单段及多段线性拟合...
  5. java 单字节_java文件读取。(单字节读取和按行读取读取)
  6. android 不可点击状态,Android系统.如何使用setClickable同时设置所有按钮可点击或不可点击?...
  7. oracle dba 手动创建数据实例
  8. 编程大神进阶,Python技巧小贴士
  9. import pyart时报错 ValueError: numpy.ndarray has the wrong size, try recompiling.
  10. 最不适合做数据分析的6种性格,看看你占了几个?
  11. 天猫超市回应大数据杀熟;华为 Mate Xs 被热炒至 6 万元;Elasticsearch 7.6.1 发布| 极客头条...
  12. Java并发系列—并发编程挑战
  13. Marathon环境下fastdfs和vsftpd和miniIo文件服务器搭建的方式
  14. MongoDB的安装、配置服务(转)
  15. bi项目中数据仓库的维度表和事实表
  16. python猴子吃桃子的问题_张含韵忍不住一吃再吃的这种湖南美食,你可能买到假货...
  17. 爬取《全职高手之巅峰荣耀》的豆瓣影评,分析漫改电影的优劣好坏
  18. java使用ffmpeg对视频进行转码和分辨率转换
  19. 快速部署支持 Makedown 和 LaTeX 等格式的 Zbox-Wiki 文档共享站点
  20. docker容器化部署

热门文章

  1. CCS使用教程06:在线仿真操作
  2. 简单的个人健康记录系统(Android+Web)
  3. GoF设计模式学习笔记 第一回 Mediator
  4. 图像isp 详解_ISP图像质量调节介绍
  5. python人脸检测代码_python实现人脸识别代码
  6. office2016和office visio2016同时安装包你一次成功
  7. Django使用WebSocket
  8. 栈的基本操作(C语言实现)
  9. 【干货收藏】测试人员必看的经典书籍
  10. Qt扫盲-网络编程概述