Zapisz wykres do pliku obrazu zamiast wyświetlać go za pomocą Matplotlib
Piszę szybki i brudny skrypt do generowania działek w locie. Używam poniższego kodu (z dokumentacji Matplotlib) jako punktu wyjścia:
from pylab import figure, axes, pie, title, show
# Make a square figure and axes
figure(1, figsize=(6, 6))
ax = axes([0.1, 0.1, 0.8, 0.8])
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
fracs = [15, 30, 45, 10]
explode = (0, 0.05, 0, 0)
pie(fracs, explode=explode, labels=labels, autopct='%1.1f%%', shadow=True)
title('Raining Hogs and Dogs', bbox={'facecolor': '0.8', 'pad': 5})
show() # Actually, don't show, just save to foo.png
Nie chcę wyświetlać wykresu na GUI, zamiast tego chcę zapisać wykres do pliku (powiedzmy foo.png), aby można go było użyć w skryptach wsadowych. Jak to zrobić?
1049
3
Chociaż na pytanie została udzielona odpowiedź, chciałbym dodać kilka przydatnych wskazówek podczas korzystania z matplotlib.pyplot.savefig. Format pliku może być określony przez rozszerzenie:
Da odpowiednio rasteryzowane lub wektorowe wyjście, oba, które mogą być użyteczne. Dodatkowo, przekonasz się, że
pylab
pozostawia wokół obrazu obfite, często niepożądane, białe przestrzenie. Usuń ją za pomocą:Rozwiązaniem jest:
Jeśli nie podoba Ci się koncepcja "aktualnej" figury, zrób to: