关于调整Matplotlib子图尺寸的方法
本文将为大家介绍如何调整Matplotlib子图的大小。Matplotlib可以将多个子图绘制到同一个控制面板上,并将其划分为多个单独的子图。接下来,我们将详细介绍如何调整Matplotlib子图的大小以及遇到问题时应该如何处理。

调整单个图形figure的大小
在Matplotlib中,我们可以使用以下语句来控制单个图形figure的大小:
fig=plt.figure(figsize=(8,6))
这里我们设置图形的大小为8*6。有了这个方法,我们可以轻松地调整单个图形的大小。
绘制多个子图
有时我们需要将两个图画在同一个控制面板上以进行比较。Matplotlib提供了subplot方法可以实现这个功能。下面是一个例子:
#展示一下数据
fig=plt.figure(figsize=(15,7))
fig1=plt.subplot(231)
plt.scatter(data.loc[:,'Avg.Area Income'],data.loc[:,'Price'])
plt.title('Income VS Price')
fig2=plt.subplot(232)
plt.scatter(data.loc[:,'Avg.Area House Age'],data.loc[:,'Price'])
plt.title('Age VS Price')
fig3=plt.subplot(233)
plt.scatter(data.loc[:,'Avg.Area Number of Rooms'],data.loc[:,'Price'])
plt.title('Number VS Price')
fig4=plt.subplot(234)
plt.scatter(data.loc[:,'Area Population'],data.loc[:,'Price'])
plt.title('Population VS Price')
fig5=plt.subplot(235)
plt.scatter(data.loc[:,'size'],data.loc[:,'Price'])
plt.title('size VS Price')
plt.show()
当子图比较少时,整个图通常不会发生变形。但是当子图很多时,整个图可能会出现变形,因为子图的大小无法根据整个图的大小自适应调整。
如何解决子图变形问题
一种简便的解决方法是将两个子图画在同一个画布上。这样即是子图无法改变,但是外面的画布大小可以改变,子图就可以根据外面画布大小自适应的显示了。
下面是相应的代码:
fig=plt.figure(figsize=(11,4))
fig6=plt.subplot(121)
label0=plt.scatter(X.loc[:,'V1'][y_corrected==0],X.loc[:,'V2'][y_corrected==0])
label1=plt.scatter(X.loc[:,'V1'][y_corrected==1],X.loc[:,'V2'][y_corrected==1])
label2=plt.scatter(X.loc[:,'V1'][y_corrected==2],X.loc[:,'V2'][y_corrected==2])
plt.title("corrected data")
plt.xlabel('V1')
plt.ylabel('V2')
plt.legend((label0,label1,label2),('label0','label1','label2'))
plt.scatter(centers[:,0],centers[:,1])
fig7=plt.subplot(122)
label0=plt.scatter(X.loc[:,'V1'][y==0],X.loc[:,'V2'][y==0])
label1=plt.scatter(X.loc[:,'V1'][y==1],X.loc[:,'V2'][y==1])
label2=plt.scatter(X.loc[:,'V1'][y==2],X.loc[:,'V2'][y==2])
plt.title("labled data")
plt.xlabel('V1')
plt.ylabel('V2')
plt.legend((label0,label1,label2),('label0','label1','label2'))
plt.scatter(centers[:,0],centers[:,1])
plt.show()
相比较原来的代码,多了一行设置画布大小的操作。这个方法能解决子图变形的问题。
总结
本文介绍了如何调整Matplotlib子图大小的方法,并解决了子图变形问题。相信这些方法能够为Matplotlib绘图提供更大的灵活性和控制性。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6918.html
