Speichern Sie ein Pandas.Series-Histogramm in einer Datei


82

Erstellen Sie in ipython Notebook zuerst ein Pandas Series-Objekt. Anschließend ruft der Browser die Abbildung auf, indem Sie die Instanzmethode .hist () aufrufen.

Ich frage mich, wie ich diese Figur in einer Datei speichern kann (ich meine nicht durch Rechtsklick und Speichern unter, sondern die im Skript benötigten Befehle).

Antworten:


165

Verwenden Sie die Figure.savefig()Methode wie folgt:

ax = s.hist()  # s is an instance of Series
fig = ax.get_figure()
fig.savefig('/path/to/figure.pdf')

Es muss nicht enden pdf, es gibt viele Möglichkeiten. Lesen Sie die Dokumentation .

Alternativ können Sie die pyplotSchnittstelle verwenden und einfach savefigals Funktion aufrufen , um die zuletzt erstellte Figur zu speichern:

import matplotlib.pyplot as plt
s.hist()
plt.savefig('path/to/figure.pdf')  # saves the current figure

5
Wenn Sie diesen Fehler erhalten AttributeError: 'numpy.ndarray' object has no attribute 'get_figure', ist es wahrscheinlich, dass Sie mehrere Spalten zeichnen, z s.hist(columns=['colA', 'colB']). In diesem Fall ist axein Array aller Achsen. Sie können versuchen ax[0].get_figure()oderax[0][0].get_figure()
toto_tico

1
Ich speichere zwei Grundstücke wiederholt. Aber es überschreibt die erste Handlung und die zweite sieht aus wie die Summe von zwei Handlungen. Weiß jemand, wie man dieses Problem löst?
Capan

1
@bukowski Hinzufügen import matplotlib.pyplot as pltund plt.close().
Acumenus

Wenn man eine Schleife und mehrere Figuren macht, kann man fig.clf()die Figur löschen.
tommy.carstensen

7

Sie können verwenden ax.figure.savefig():

import pandas as pd

s = pd.Series([0, 1])
ax = s.plot.hist()
ax.figure.savefig('demo-file.pdf')

Dies hat keinen praktischen Vorteil gegenüber dem, ax.get_figure().savefig()wie in der Antwort von Philip Cloud vorgeschlagen, sodass Sie die Option auswählen können, die Sie am ästhetischsten finden. In der Tat get_figure()einfach zurückself.figure :

# Source from snippet linked above
def get_figure(self):
    """Return the `.Figure` instance the artist belongs to."""
    return self.figure
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.