Es rakstu ātru un netīru skriptu, lai ģenerētu zemes gabalus lidojuma laikā. Kā sākumpunktu izmantoju kodu, kas parādīts zemāk (no Matplotlib dokumentācijas):
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
Es negribu attēlot diagrammu grafiskajā saskarnē, tā vietā es gribu saglabāt diagrammu failā (piemēram, foo.png), lai to varētu izmantot, piemēram, sērijveida skriptos. Kā to izdarīt?
Lai gan uz šo jautājumu jau ir sniegta atbilde, es gribētu pievienot dažus noderīgus padomus, kad izmantojat matplotlib.pyplot.savefig. Faila formātu var norādīt pēc paplašinājuma:
from matplotlib import pyplot as plt
plt.savefig('foo.png')
plt.savefig('foo.pdf')
Tas dos attiecīgi rastrētu vai vektorizētu rezultātu, kas abi varētu būt noderīgi. Turklāt pylab
atstāj lielu, bieži vien nevēlamu, balto laukumu ap attēlu. Noņemiet to ar:
savefig('foo.png', bbox_inches='tight')
Risinājums ir šāds:
pylab.savefig('foo.png')
Ja jums nepatīk koncepcija "current" skaitlis, darīt:
import matplotlib.image as mpimg
img = mpimg.imread("src.png")
mpimg.imsave("out.png", img)