Matplotlib 优雅绘图
第一步 创建容器类对象
容器类对象有四类:Figure,Axes,Axis,Tick。这四个是由层级顺序的,一个Figure包含多个Axes,一个Axes包含多个Axis,一个Axis包含多个Tick。
Figure和Axes是作图必备,Axis和tick则是精细调整时才需要考虑的。因此高效作图第一步就是,先把Figure和Axes创建出来。
第二步 添加基础类对象
基础类对象就是图中所有的点、线、图例、标题这些。需要注意的是,基础类是寄生于容器类的。因此,添加基础类对象时,要先声明容器类对象,也就是说,画画时必须先说清楚在哪里画。
作为一个优雅的人,如果需要设置很多属性值(property),写一堆ax.就太不优雅了,这时候可以使用ax.set()来统一设置,简化代码:
美化格式,无非就是美化元素的属性值,包括字体、字号、子图边距、网格类型等。全局美化有两种方式,一是通过plt.style.use()使用官方预定义的样式,二是通过mpl.rcParams自定义样式。
官方预定义的样式有很多,用plt.style.available可以查看所有可用样式。第二种方法,可以把自己想要的格式显示地声明出来,每个细节都是自己掌控的。用mpl.rcParams.keys()可以查看所有可以全局定义的属性,用mpl.rcParams.update()可以实现一行代码更新参数。
第三步 按格式导出图片
Matplotlib导出的图可以有很多格式,论文作图时,一定要导出矢量图,也就是以.svg或者.pdf为后缀的,这类图片放大时不会失真。一般而言,SVG格式用于Word,PDF格式用于LaTeX。
还需要注意的是,为了去掉Matplotlib作图时多余的空白部分,导出图片时要传入bbox_inches='tight'参数。导出图片的代码如下:
最后更新于