2015-08-26 8 views
7

Ich habe den folgenden Code:Wie Pandas Kreisdiagramm in eine Datei speichern?

import pandas as pd 
import matplotlib 
matplotlib.style.use('ggplot') 
df = pd.DataFrame({ 'sample1':['foo','bar','bar','qux'], 'score':[5,9,1,7]}) 
sum_df = df.groupby("sample1").sum() 
pie = sum_df.plot(kind="pie", figsize=(6,6), legend = False, use_index=False, subplots=True, colormap="Pastel1") 

, die das Kreisdiagramm macht. Was ich dann tun möchte, ist es in einer Datei zu speichern. Aber warum scheitern?

fig = pie.get_figure() 
fig.savefig("~/Desktop/myplot.pdf") 

ich diesen Fehler:

'numpy.ndarray' object has no attribute 'get_figure' 

Antwort

7

Well pie ist ein numpy Array, da der Rückgabetyp für DataFrame.plot() ein numpy Array von matplotlib.AxesSubplot Objekten.

0

Anspruch: Meine Lösung ist speichern Sie die aktuelle Handlung, die hier funktioniert, aber es ist kein guter Weg, dies zu tun. Was @ user3100115 gepostet hat, ist der richtige Weg, dies zu tun.

Mit matplotlib.pyplot.savefig es zu speichern:

import matplotlib.pyplot as plt 
plt.savefig('pie') 

Sie erhalten eine Bild erhalten namens pie.png wie folgt aus:

pie plot

+1

Haben Sie die Frage gelesen? das ist nicht was OP will. – styvane

+0

@ user3100115 Das ist natürlich '' ndarray'' hat keine "get_figure" Funktion, ich denke was er wirklich will, ist das Bild erfolgreich zu speichern, richtig? – kxxoling

+2

NEIN er versucht, ein 'DataFrame'-Objekt mit [' DataFrame.plot() '] (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html) und I zu plotten habe die richtige Antwort gepostet. – styvane

-1

Mit diesem Code:

plt.get.savefig('myplot') #figure will be saved as saved_figure.png 
plt.get.savefig('myplot.pdf') #figure will be saved as saved_figure.pdf 

Stellen Sie jedoch sicher, dass der Import wie folgt erfolgt:

import matplotlib.pyplot as plt 
Verwandte Themen