2015-04-03 5 views
5

Ich habe einen Code, der etwa 50 Grafiken basierend auf groupby erstellt. Der Code sieht wie folgt aus:Speichern mehrerer Zahlen in einer PDF-Datei in Matplotlib

import matplotlib.pyplot as plt 
from matplotlib.backends.backend_pdf import PdfPages 

with PdfPages('foo.pdf') as pdf: 
    for i, group in df.groupby('station_id'): 
     plt.figure() 


fig=group.plot(x='year', y='Value',title=str(i)).get_figure() 
pdf.savefig(fig) 

Dies ist nur eine Zahl zu speichern, (die letzte in meiner Serie), wenn ich alle meine Figuren möchte in einem pdf gespeichert werden. Jede Hilfe wäre willkommen.

+0

Ihre Vertiefung scheint falsch ... Ich gehe davon aus, dass 'fig = Gruppe ...' in der for-Schleife gehen sollte –

+0

so verstehe ich, dass Sie Ihre PDF-Datei ca. 50 Seiten haben möchten, jede Seite mit eine andere Figur? –

+0

Das ist richtig. Ich denke, ich hätte auch nichts dagegen, mehrere Zahlen pro Seite zu haben, aber meine Absicht mit dem obigen Code ist, eine Zahl pro Seite zu haben. Mein Einzug könnte falsch sein, ich bin noch ziemlich neu bei Python. –

Antwort

7

In Ihrem Code ist ein Einrückungsfehler aufgetreten. Da Ihr Plotbefehl nicht in der Schleife war, wird nur der letzte Plot erstellt.

import matplotlib.pyplot as plt 
from matplotlib.backends.backend_pdf import PdfPages 

with PdfPages('foo.pdf') as pdf: 
    for i, group in df.groupby('station_id'): 
     plt.figure() 
     fig=group.plot(x='year', y='Value',title=str(i)).get_figure() 
     pdf.savefig(fig) 
Verwandte Themen