How to save Pandas pie plot to a file?

Question:

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'
Asked By: neversaint

||

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")
Answered By: styvane

Claim: My solution is save the current plot which works here, but it’s not a good way to do this. What @user3100115 posted is the right way to do this.

Using matplotlib.pyplot.savefig to save it:

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

You’ll get a image named pie.png like this:

pie plot

Answered By: Kane Blueriver

Use this 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

but make sure import shoul be like below code:

import matplotlib.pyplot as plt
Answered By: Akash Nayak
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.