2016-08-18 38 views
1

我使用matplotlib.pyplot繪製帶有圖例的條形圖,plt.savefig()保存的圖與plt.show()相比不完整。更確切地說,這個圖例不在圖中,jpg文件只有圖例的左邊一半。如何在matplotlib.pyplot中顯示savefig?

我的代碼:

from matplotlib import pyplot as plt 
fig = plt.figure(figsize=(12,6)) 
plt.bar(x, y, label="a") 
plt.legend(bbox_to_anchor=(1.02, 1), loc="upper left") 
plt.show() 
fig.savefig("a.jpeg") 

我通過這個答案Matplotlib savefig with a legend outside the plot但所選擇的答案看起來建議手動調節軸。我有很多不同的數字,因此可能不合適。自從它在多年前發佈以來,我不知道是否可以使用任何自動方法使plt.savefig()的效果爲plt.show()?我在plt.savefig()找不到任何適當的論點。

謝謝!

+1

是否加入'bbox_inches ='tight''到savefig解決這個問題? –

+0

謝謝!這種幫助。但我不太瞭解關於'bbox_inches'的文檔中的評論。這是爲了什麼? –

+0

它的意思是簡單地刪除空白,儘管我發現它解決了標籤文本被切斷的'savefig'問題。一個更好的解決方案可能是'tight_layout',請參閱http://stackoverflow.com/questions/6774086/why-is-my-xlabel-cut-off-in-my-matplotlib-plot,但似乎很奇怪,你應該需要在某些情況下。 –

回答

2

希望這將解決problem.Add bbox_inches='tight'在PARAMS這有助於消除空格

fig.savefig('a.jpeg', bbox_inches='tight', pad_inches=0) 
相關問題