序言
有幸在这次的组队学习活动中,拜读宁海涛先生的《科研论文配图绘制指南——基于python》一书,这本书文辞亲切,排版友好,色彩丰富,内容实用,实在是一本学习如何使用python进行科研论文配图绘制的好书!
科研论文配图的绘制对我们的重要性不言而喻,无论是毕业论文还是竞赛中需要提交的论文,甚至是我们的课程论文,一组色彩合适、排版优美的配图都会是我们论文的加分项。因此,这本书实在值得一读。
阅读笔记
Matplotlib绘图包介绍
- 目前众多科研工作者、社会工作者等首选的绘图工具。
- 衍生出了多个优秀的第三方绘图工具。
- 面向对象的绘制语法导致学习者在熟悉每个绘图函数的细节方面增加了学习成本。
或许也是这里提到的一些因素使得平常绘图是更多地推荐使用seaborn,毕竟seaborn也勉强可以说是matplotlib的又一层封装。
图形元素
matplotlib的图形元素包括基础类元素和图形类元素,基础类元素就是点、线、文本、网格等基本成分,容器类元素就是一种或多种基础类元素的合集;基础类元素与容器类元素统称为matplotlib的艺术对象。
图层顺序
Matplotlib 采用的是面向对象的绘图方式。在同一个坐标图形中绘制不同的数据图层时,
Matplotlib 可通过设置每个绘图函数中的 zorder 参数来设定不同的图层。
Matplotlib的默认图层有下到上依次是:画布、点集合(PatchCollection, 姑且这么翻译)、线集合、文本、轴线和网格。通过修改涂层的z-order参数可以改变图层的位置。
坐标系
说起坐标系,自然说到轴。
轴对象有轴比例(axis scale)、刻度位置(tick locator)和刻度格式(tick formatter)是可以控制的。
- 轴比例:一般是线性的,但是也可以人为控制为非线性的,比如log等。我想对这一部分进行调整这或许在体现一组数据的线性或非线性关系上表达更好。
- 刻度位置:可以说就是字面意思,不过习惯上来说,刻度位置都是等距的。
- 刻度格式:可以指定保留位数、带百分号或中括号等刻度格式。
坐标系的类型:
直角坐标系和极坐标系应该都比较熟悉,就不做赘述。
下面主要介绍一下matplotlib中地理坐标系这一功能。
Matplotlib 地理坐标系中的地理投影方式较少,仅有 Aitoff 投影、Hammer 投影、Lambert
投影和 Mollweide 投影 4 种。其实并不适合绘制地理坐标系,建议使用其他第三方库来绘制。
多子图的绘制
subplot函数和add_subplot函数都可以用来指定子图的位置,不过add_subplot函数是呢个用于创建了画布对象之后的。在位置的表达上没有区别。
subplots函数也是用于指定子图位置的,不过在指定位置上不是像上面两者一样通过“212”等连续的数字来指定,而是预先划分好坐标,做图时指定所化图像的位置。
例如:
fig, axs = plt.subplots(2, 3, sharex=True, sharey=True)
axs[0,0].text(0.5, 0.5, "subplots(0,0)")
axs[0,1].text(0.5, 0.5, "subplots(0,1)")
axs[0,2].text(0.5, 0.5, "subplots(0,2)")
axs[1,0].text(0.5, 0.5, "subplots(1,0)")
axs[1,1].text(0.5, 0.5, "subplots(1,1)")
axs[1,2].text(0.5, 0.5, "subplots(1,2)")
常见图类型
我想这一部分在官网了解会更好,但是知道mayplotlib可以画哪些类型的图是很有必要的,这样才可以使得我们在需要用到它时可以快速进行调用。
不过我们平常用得比较多的,比如折线图和散点图等,基本的用法当然仍然是需要记住咯。