save a pandas.Series histogram plot to file
Use the Figure.savefig()
method, like so:
ax = s.hist() # s is an instance of Seriesfig = 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 plts.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.
- In this case,
ax = s.hist(columns=['colA', 'colB'])# try one of the followingfig = ax[0].get_figure()fig = ax[0][0].get_figure()fig.savefig('figure.pdf')
You can use ax.figure.savefig()
:
import pandas as pds = pd.Series([0, 1])ax = s.plot.hist()ax.figure.savefig('demo-file.pdf')
This has no practical benefit over ax.get_figure().savefig()
as suggested in Philip Cloud's answer, so you can pick the option you find the most aesthetically pleasing. In fact, get_figure()
simply returns self.figure
:
# Source from snippet linked abovedef get_figure(self): """Return the `.Figure` instance the artist belongs to.""" return self.figure