好奇心Log 今天以下文章来源于阿宗的科研备忘 ,作者阿宗的科研备忘 我们初学Python的时候,想画张图出来还是不难的,导入matplotlib之后,直接选择相应的绘图函数作图就可以了。网上也有很多现成的绘图示例,可以学习借鉴(抄抄代码)。 但是,我们的甲方or领导or老师or审稿人or Others,最喜欢把很多张子图放到一张大图里对比着看了呢!所有没有办法,我们也得掌握绘制子图的技能。这样的绘图过程,在Python上叫作subplot,在NCL上叫作panel。 import matplotlib.pyplot as pltx = [1,2,3,4]y = [1,0,2,4]fig = plt.figure()ax = fig.add_subplot(1,1,1)plt.plot(x, y)plt.savefig('example.png') plt.savefig('example.png',dpi=300,bbox_inches='tight') import matplotlib.pyplot as plt fig = plt.figure()ax = fig.add_subplot(1,1,1) import matplotlib.pyplot as pltplt.rcParams['font.size'] = 12 #设置默认字号x = [1,2,3,4]y = [1,0,2,4]fig = plt.figure()ax1 = fig.add_subplot(2,2,1) #或:plt.subplot(2,2,1)plt.plot(x, y)plt.title('a) ') ax2 = fig.add_subplot(2,2,2) # 或:plt.subplot(2,2,2)plt.plot(x, y)plt.title('b) ',fontsize=14,color='blue')ax3 = fig.add_subplot(2,2,3) # 或:plt.subplot(2,2,3)plt.plot(x, y)plt.title('c) ',fontsize=16,color='red',loc='left',bbox=dict(facecolor='y', edgecolor='blue', alpha=0.65 ))ax4 = fig.add_subplot(2,2,4) # 或:plt.subplot(2,2,4)plt.plot(x, y)plt.title('d) ',fontsize=18,color='green',rotation=45)plt.savefig('example.png',dpi=300,bbox_inches='tight') import matplotlib.pyplot as pltimport numpy as npimport pandas as pdplt.rcParams['font.size'] = 12 # 设置默认字号x = [1,2,3,4]y = [1,0,2,4]data = pd.Series(np.array(y),index=x)fig,axes=plt.subplots(2,2) data.plot(ax=axes[0,0])axes[0,0].set_title('a) ')data.plot(ax=axes[0,1])axes[0,1].set_title('b) ',fontsize=14,color='blue')data.plot(ax=axes[1,0])axes[1,0].set_title('c) ',fontsize=16,color='red',loc='left',bbox=dict(facecolor='y', edgecolor='blue', alpha=0.65 ))data.plot(ax=axes[1,1])axes[1,1].set_title('d) ',fontsize=18,color='green',rotation=45)plt.savefig('example.png',dpi=300,bbox_inches='tight') 有些时候,我们也会遇到不规则划分的情况,可以通过指定画布的具体位置来添加子图,比如我在这篇文章(如何用Python画站点雪花图?)中定位子图的方法: fig=plt.figure(figsize=[5.5,5],dpi=300)plt.subplots_adjust(top=0.95, bottom=0.05, right=0.85, left=0.05, hspace=0, wspace=0) import matplotlib.pyplot as pltplt.rcParams['font.size'] = 12 #设置默认字号x = [1,2,3,4]y = [1,0,2,4]fig = plt.figure()plt.subplot(2,2,1)plt.plot(x, y)plt.title('a) ')plt.subplot(2,2,2)plt.plot(x, y)plt.title('b) ',fontsize=14,color='blue')plt.subplot(2,1,2)plt.plot(x, y)plt.title('c) ',fontsize=16,color='red',loc='left',bbox=dict(facecolor='y', edgecolor='blue', alpha=0.65 ))plt.savefig('example.png',dpi=300,bbox_inches='tight') |
|