2015-08-26 66 views
7

我有以下代碼:如何將熊貓餅圖保存到文件?

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") 

這讓餅圖。我想要做的就是將它保存到一個文件中。 但爲什麼這會失敗?

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

我得到這個錯誤:

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

回答

7

pie是numpy的陣列,因爲DataFrame.plot()返回類型爲matplotlib.AxesSubplot對象的numpy的陣列。

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

索賠:我的解決方案是保存當前工作在這裏的情節,但它不是一個好辦法做到這一點。 What @ user3100115發佈是正確的方式來做到這一點。

使用matplotlib.pyplot.savefig保存它:

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

,你會得到一個名爲pie.png這樣的形象:

pie plot

+1

你讀過這個問題了嗎?這不是OP想要的。 – styvane

+0

@ user3100115很明顯,''ndarray''沒有''get_figure''功能,我想他真正想要的是成功保存圖像,對吧? – kxxoling

+2

不,他試圖使用['DataFrame.plot()'](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.plot.html)繪製一個'DataFrame'對象和I已經發布了正確的答案。 – styvane

-1

使用此代碼:

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 

但請確保輸入如下代碼:

import matplotlib.pyplot as plt 
相關問題