import numpy as np
import matplotlib.pyplot as plt
# 用于单独保存子图的函数
def save_subfig(fig,ax,save_path,fig_name):
bbox = ax.get_tightbbox(fig.canvas.get_renderer()).expanded(1.02, 1.02)
extent = bbox.transformed(fig.dpi_scale_trans.inverted())
fig.savefig(save_path+fig_name, bbox_inches=extent)
fig,ax=plt.subplots(2,2)
# 画第1个图:折线图
x=np.arange(1,100)
ax[0][0].plot(x,x*x)
ax[0,0].set_title('title')
ax[0,0].set_xlabel('Xlabel')
ax[0,0].set_ylabel('Ylabel')
# 画第2个图:散点图
ax[0][1].scatter(np.arange(0,10), np.random.rand(10))
ax[0,1].set_title('title')
ax[0,1].set_xlabel('Xlabel')
ax[0,1].set_ylabel('Ylabel')
# 画第3个图:饼图
ax[1][0].pie(x=[15,30,45,10],labels=list('ABCD'),autopct='%.0f',explode=[0,0.05,0,0])
ax[1,0].set_title('title')
ax[1,0].set_xlabel('Xlabel')
ax[1,0].set_ylabel('Ylabel')
# 画第4个图:条形图
ax[1][1].bar([20,10,30,25,15],[25,15,35,30,20],color='b')
ax[1,1].set_title('title')
ax[1,1].set_xlabel('Xlabel')
ax[1,1].set_ylabel('Ylabel')
plt.tight_layout()
plt.show()
save_subfig(fig,ax[0,0],'./','subfig_1')
save_subfig(fig,ax[1,1],'./','subfig_2')
完整的多子图如下所示
保存的图片效果如下
如下是subfig_1.png
如下是subfig_2.png