Python可视化 | 子图中(subplot)的几种设置方法
好奇心Log 今天
以下文章来源于阿宗的科研备忘 ,作者阿宗的科研备忘
我们初学Python的时候,想画张图出来还是不难的,导入matplotlib之后,直接选择相应的绘图函数作图就可以了。网上也有很多现成的绘图示例,可以学习借鉴(抄抄代码)。
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)
)都有个误解,以为subplot只能处理1×n,n×n,n×1这几种情况,硬要画3张图,就会出现第4张子图空白,而不是第3张子图占满第3、4张子图所在位置的情况。就像这样:
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')
不看的原因确定内容质量低不看此公众号
赞 (0)