2015-06-10 248 views
3

我有一個簡單的Python代碼如下:爲什麼我的plt.savefig不起作用?

import numpy as np 
import matplotlib.pyplot as plt 

""" 
Here are the solutions and the plot. 
""" 

# Create the axis and plot. 
plt.axis([0, 10, 0, 10]) 
axis_x = range(1, 11) 
grd = [1.1, 2.1, 3.1, 4.1, 5.1, 6.1, 7.1, 8.1, 9.1, 10.1] 
grd2 = [1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2, 9.2, 10.2] 
plt.plot(axis_x, grd, '-g', label='BR1') 
plt.plot(axis_x, grd2, '-b', label='BR2') 
plt.legend(loc='upper left') 
plt.grid() 
plt.show() 

# Save the results vector to a text file. 
np.savetxt('test.out', (grd, grd2)) 

# Save the figure as '.eps' file. 
plt.savefig('expl.pdf', format='pdf', dpi=1200) 

當我打開輸出文件expl.pdf和/或test.out我覺得他們的空白,並沒有在那裏。爲什麼?

謝謝。

回答

13

當您關閉由plt.show()顯示的圖像時,圖像被關閉並從內存中釋放。

在致電show之前,您應該致電savefigsavetxt

+0

謝謝。情節現在好了。 'test.out'仍然是空的。 – Jika

1

因爲你定義只具有長度爲9列表axis_x無法生成你的情節,而grdgrd2有長度等於10 只需更換的axis_x與定義:

axis_x=range(1,11) 和你的陰謀會顯示出來,它會被保存好。

+0

發佈此回答後,作者修改'axis_x =範圍(1,11)',現在我的答案看起來不合適:) – xecafe