matplotlib入门基础系列的前六篇博客,将官网这张图里的各种元素(除去spine)作为入门内容,把相应的函数的基础用法介绍了一遍
(图片来源于最新版官网:Basic Usage — Matplotlib 3.5.2 documentation)
内容包括
figure/axes/图元素的关系,面向对象风格和pyplot风格
(matplotlib入门基础(一)figure相关的基本概念以及创建一个图)
创建子图(axes)
(matplotlib入门基础(二)创建子图)
画线(line)和标记(marker)
(matplotlib入门基础(三)画线和标记)
设置图标题(title)和轴标签(xlabel,ylabel)
(matplotlib入门基础(四)图标题和轴标签)
设置轴坐标范围、轴刻度比例、轴刻度(xtick,ytick)
(matplotlib入门基础(五)轴坐标范围 轴刻度比例 轴刻度)
设置网格(grid)、图例(legend)、图片保存
(matplotlib入门基础(六)网格 图例 图片保存)
其中,前三篇博客介绍的内容为用matplotlib画图的最基本内容,也就是根据数据画出数据线,后三篇博客介绍的内容以前三篇博客的内容为基础,可以看做是画装饰性的元素。
另外,给出个人总结(也可以说是注意事项),供互相学习
1. 实现同一功能有多种函数可用
例如,代码的面向对象风格和pyplot风格,面向对象风格,先建立figure和axes,再调用axes里的函数,pyplot风格,直接调用pyplot里的函数
例如,设置x轴的刻度时,可以用axes.set_xticks(),也可以用axes.xaxis.set_ticks(),也可以用axes.get_xaxis().set_ticks()
(原因:找到原始代码可以发现,axes.set_xticks()其实是xaxis调用set_ticks(),axes.get_xaxis().set_ticks()其实是返回axes的xaxis再调用set_ticks(),所以三者本质上都是axes里的xaxis调用set_ticks())
这种现象的原因的个人理解(可以类比理解其他功能重复的函数):
函数的嵌套,比如函数A内部仅仅是调用函数B而已,并没有增加额外的功能,那么实际上函数A就是函数B的别名,函数A函数B都能实现函数B的功能
2. 某些函数可能存在扩展参数,这些参数也可以设置
例如,Axes.plot()包含Line2D属性参数
(matplotlib.axes.Axes.plot — Matplotlib 3.5.2 documentation)
例如,Axes.set_title()包含Text属性参数
(matplotlib.axes.Axes.set_title — Matplotlib 3.5.2 documentation)
最好在官网查看完整参数
3. 在同一函数里,设置某项参数的方法可能不唯一
例如,Axes.plot()函数里,可以用fmt设置标记形状、线型、线的颜色,也可以用marker、linestyle、color参数分别设置标记形状、线型、线的颜色
例如,Axes.set_title()函数里,可以用fontdict以字典的形式设置字体参数,也可以用Text属性参数设置字体参数
4. 不同版本下的函数参数可能有少量不同
例如,Axes.set_xticks()函数
在3.4.0版中
Axes.set_xticks(self, ticks, *, minor=False)
(matplotlib.axes.Axes.set_xticks — Matplotlib 3.4.0 documentation)
在最新版中,多出一个labels参数
Axes.set_xticks(ticks, labels=None, *, minor=False, **kwargs)
(matplotlib.axes.Axes.set_xticks — Matplotlib 3.5.2 documentation)