Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

save a pandas.Series histogram plot to file

In ipython Notebook, first create a pandas Series object, then by calling the instance method .hist(), the browser displays the figure.

I am wondering how to save this figure to a file (I mean not by right click and save as, but the commands needed in the script).

like image 219
GeauxEric Avatar asked Sep 24 '13 21:09

GeauxEric


People also ask

How do I save a plot as a PNG in Python?

To save plot figure as JPG or PNG file, call savefig() function on matplotlib. pyplot object. Pass the file name along with extension, as string argument, to savefig() function.

How do I save a plot in Matplotlib?

Matplotlib plots can be saved as image files using the plt. savefig() function. The plt. savefig() function needs to be called right above the plt.


1 Answers

Use the Figure.savefig() method, like so:

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

It doesn't have to end in pdf, there are many options. Check out the documentation.

Alternatively, you can use the pyplot interface and just call the savefig as a function to save the most recently created figure:

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

Plots from multiple columns

  • Added from a comment toto_tico made on 2018-05-11
  • If you are getting this error AttributeError: 'numpy.ndarray' object has no attribute 'get_figure', then it is likely that you are plotting multiple columns.
    • In this case, ax will be an array of all the axes.
ax = s.hist(columns=['colA', 'colB'])  # try one of the following fig = ax[0].get_figure() fig = ax[0][0].get_figure()  fig.savefig('figure.pdf') 
like image 178
Phillip Cloud Avatar answered Sep 17 '22 13:09

Phillip Cloud