2014-04-02 60 views
1

我有兩個不同的地塊正在生成。我需要將它們保存到一個'.png'文件中。我想避免使用subplots,因爲當我這樣做時,它似乎改變了我需要保持原樣的情節的大小和形狀。這是我的代碼目前的樣子:如何在python中的單個文件上保存兩張圖?

fig = plt.figure(1) 
    plt.clf() 
    plot1(*args) 
    plt.savefig('plot1.png') 
    plot2(*args) 
    plt.savefig('plot2.png') 

任何幫助你可以給予將不勝感激!

回答

1

它會幫助你改變圖的大小,並使用subplot()

默認大小爲(8" ,6 「)

你可以把(16」,6" ),並把它們並排側?

fig = plt.figure(figsize=(16,6)) 
ax0 = fig.add_subplot(121) 
ax0.plot(*args0) 
ax1 = fig.add_subplot(122) 
ax1.plot(*args1) 
plt.tight_layout() 
plt.savefig('plots.png') 
+0

是的,這很好!非常感謝! – NewGuy

0

不,請看plt.subplot()。您可以在一個圖中繪製兩個圖並將其保存到一個文件中。

+0

這就是當我這樣做時,它強制它們具有相同的高度,變成網格類型的配置。有沒有辦法解決這個問題? – NewGuy

2

也可以將多個數字保存到單個文件中,而不使用子圖,如果這是您正在查找的內容。這可以使用matplotlibPdfPages後端來完成。這裏創建一個文件,其中可以調用多次savefig來保存圖像。

import numpy 
import matplitlib.pylab as plt 
from matplotlib.backends.backend_pdf import PdfPages 

x = numpy.linspace(0, 100, 101) 
y = numpy.cos(x) 
z = numpy.sin(x) 

cos_plot = plt.figure(1) 
plt.plot(x, y) 

sin_plot = plt.figure(2) 
plt.plot(x, z) 

pp = PdfPages("Cosine and sine plots.pdf") 
pp.savefig(cos_plot, dpi = 300, transparent = True) 
pp.savefig(sin_plot, dpi = 300, transparent = True) 
pp.close() 

注意選項dpitransparent是可選的。

希望這會有所幫助!

+0

第2行的錯字:它應該是matplotlib而不是'matplitlib'。否則,它完美的作品。 – Kamil

相關問題