Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save Pandas pie plot to a file?

I have the following code:

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

Which makes the pie chart. What I want to do then is to save it to a file. But why this fail?

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

I get this error:

'numpy.ndarray' object has no attribute 'get_figure'
like image 530
neversaint Avatar asked Sep 06 '25 04:09

neversaint


1 Answers

Well pie is a numpy array because the return type for DataFrame.plot() is a numpy array of matplotlib.AxesSubplot objects.

fig = pie[0].get_figure()
fig.savefig("~/Desktop/myplot.pdf")
like image 69
styvane Avatar answered Sep 09 '25 05:09

styvane