2012-11-27 42 views
1

我有很多不同的情節,這些大小必須強烈指定。每個文件一個繪圖。問題是,當尺寸太大時,我在左邊的子圖中有一些空閒空間,我想裁剪它。我不能使用subplots_adjust,因爲小尺寸的地塊也會被遮蓋。當我致電savefig時,我也不能使用tight選項。那麼,如何將我的所有地塊與我的所有文件中的固定縮進對齊到左側?如何對齊指定大小的子圖?

import sys, os 
import matplotlib.pyplot as plt 

path = sys.path[0] 
sizes = [(12,3,), (4,3,)] 
x = range(20) 


for i, size in enumerate(sizes): 
    fig = plt.figure(figsize = size, dpi = 80, facecolor='white', edgecolor=None, linewidth=0.0, frameon=True, subplotpars=None) 
    ax = fig.add_subplot(111) 
    ax.plot(x) 
    plt.ylabel ('Some label') 

    fig.savefig(os.path.join(path, 'size_'+str(i)+'.png'), dpi=80, facecolor=fig.get_facecolor(), edgecolor=None, papertype=None, format='png' ,transparent=False) 

large sized imagesmall sized image

回答

1

我想你可以只使用tight_layout()

import sys, os 
import matplotlib.pyplot as plt 

path = sys.path[0] 
sizes = [(12,3,), (4,3,)] 
x = range(20) 


for i, size in enumerate(sizes): 
    fig = plt.figure(figsize = size, dpi = 80, facecolor='white', edgecolor=None,linewidth=0.0, frameon=True, subplotpars=None) 
    ax = fig.add_subplot(111) 
    ax.plot(x) 
    plt.ylabel ('Some label') 

    plt.tight_layout() 

    fig.savefig(os.path.join(path, 'size_'+str(i)+'.png'), dpi=80,facecolor=fig.get_facecolor(), edgecolor=None, papertype=None, format='png',transparent=False) 

您也可以使用類似

fig.subplots_adjust(right=0.9, left=0.1, top=0.9, bottom=0.1, wspace=0.2) 

代替plt.tight_layout()。如果你想。


請告訴我,如果這不是你所需要的。

+0

謝謝!這正是我需要的! –

+0

@ user1426156,那麼你能否將我的答案標記爲已接受? :)這對我來說是+15的聲望,對你來說是+2的聲望。謝謝! –

相關問題