web-dev-qa-db-ja.com

Matplotlibグラフをフルスクリーンとして画像に保存する

PandasとMatPlotLibを使用して、作業中のマシンからデータを解析し、グラフを出力する小さなグラフ作成ユーティリティを構築しています。

を使用してグラフを出力するとき

plt.show()

その結果、凡例とラベルが互いに混み合った不明瞭な画像になります。

Sample Bad Image ただし、ウィンドウを全画面に拡大すると問題が解決し、グラフが見えるようにすべての位置が変更されます。

次に、グラフを.pngに保存します

plt.savefig('sampleFileName.png')

しかし、画像に保存すると、フルスクリーンの正しいバージョンのプロットは保存されず、代わりに誤ったデフォルトバージョンが保存されます。

プロットのフルスクリーンplt.show()を.pngに保存するにはどうすればよいですか?

私はあまりにも混乱しないことを望みます。

ご協力ありがとうございました!

16
user4933255

ウィンドウサイズを最大化するために使用する方法は、使用しているmatplotlibバックエンドによって異なります。最も一般的な3つのバックエンドについては、次の例を参照してください。

_import matplotlib.pyplot as plt

plt.figure()
plt.plot([1,2], [1,2])

# Option 1
# QT backend
manager = plt.get_current_fig_manager()
manager.window.showMaximized()

# Option 2
# TkAgg backend
manager = plt.get_current_fig_manager()
manager.resize(*manager.window.maxsize())

# Option 3
# WX backend
manager = plt.get_current_fig_manager()
manager.frame.Maximize(True)

plt.show()
plt.savefig('sampleFileName.png')
_

matplotlib.get_backend()コマンドを使用して、使用しているバックエンドを判別できます。 Figureの最大化バージョンを保存すると、必要に応じて大きな画像が保存されます。

35
gtlambert

もう1つのオプションとして、検討する価値があると思います

plt.savefig('filename.png', bbox_inches='tight')

これは、乱雑に見える軸ラベルがある subplots を実行している場合に特に便利です。

3
kmario23

上記の回答でエラーを受け取った人のために、これは私のために働いています。

#Show full screen
mng = plt.get_current_fig_manager()
mng.full_screen_toggle()
0
Westly White