因此,对于仍然想保存原始2*2形式图像的pdf,可以采用方法如下,最终保存的形式如图3所示。
matplotlib 画图时可以做多个子图,比如图1,但是问题是如何保存这种图形为 pdf 格式?
目前多数保存画为 pdf 的方法主要围绕的都是如何一次性保存多个图形到同一个 pdf 文档,即一个接一个竖排图像的保存,如图2所示。
可以参考链接:https://matplotlib.org/stable/gallery/misc/rasterization_demo.html#sphx-glr-gallery-misc-rasterization-demo-py
注意:使用 axes 画图时需要注意常用设置的转换,比如
plt.legend() > ax[0,0].legend()
plt.xlabel() > ax[0,0].set_xlabel()
plt.xticks() > ax[0,0].set.xticks()
plt.xlim() > ax[0,0].set_xlim()
...(更多设置参考:https://matplotlib.org/stable/api/axes_api.html#the-axes-class)
import matplotlib.pyplot as plt fig, ax = plt.subplots(2, 2, figsize=(8,6)) # 第一行第一列的图形 x1 = [1,2,3,4,5] y1 = [5,5.5,7,9,12] ax[0,0].plot(x1,y1,'-ro',ms=5) # 红色实线连点 # 第一行第二列的图形 x2 = [1,2,3,4,5] y2 = [3,4,5,7,10] ax[0,1].plot(x2,y2,'-.bo',ms=5) # 蓝色虚线连点 # 第二行第一列的图形 x2 = [1,2,3,4,5] y2 = [3,4,5,7,10] ax[1,0].plot(x2,y2,'-.bo',ms=5) # 蓝色虚线连点 # 第二行第二列的图形 x2 = [1,2,3,4,5] y2 = [3,4,5,7,10] ax[1,1].plot(x2,y2,'-.bo',ms=5) # 蓝色虚线连点 plt.savefig("Test.pdf", dpi=300)
图1
图2
图3