2016-05-27 31 views
2

我正在使用matplotlib繪製一些圖。通常,標準做法是從圖形的尺寸開始,並指定軸的尺寸,以便將圖形縮放到可用空間。指定subplot大小,而不是matplotlib中的figsize

但是我有一個請求來擴展圖形的高度以適應y軸上的離羣數據。

我知道我可以使用Figure.figsize來指定整體尺寸,但是一旦包含邊距,這將不會保持圖形的比例。有沒有辦法指定實際的副圖尺寸,或者相反地確定默認邊距尺寸的邊距尺寸並相應地調整圖的尺寸?

回答

2

你的意思是這樣的?您需要計算利潤率。

import matplotlib.pyplot as plt 

subplotsize=[5.,5.] 
figuresize=[10.,10.] 

left = 0.5*(1.-subplotsize[0]/figuresize[0]) 
right = 1.-left 
bottom = 0.5*(1.-subplotsize[1]/figuresize[1]) 
top = 1.-bottom 
fig=plt.figure(figsize=(figuresize[0],figuresize[1])) 
fig.subplots_adjust(left=left,right=right,bottom=bottom,top=top) 
ax=fig.add_subplot(111) 
plt.show() 
+0

這非常接近我想要的。我沒有爲'figuresize = [10.,10。]'指定一個固定值,而是這樣做: – ChrisGuest

+0

'margin_left = 1.0; margin_right = 1.0; margin_top = 1.0; margin_bottom = 1.0' – ChrisGuest

+0

'figuresize = [margin_left + subplotsize [0] + margin_right,margin_top + subplotsize [1] + margin_bottom]' – ChrisGuest