16

I have a dt:

>>> dt
            sales                mg         
ID         600519   600809   600519   600809
RPT_Date                                    
20060331  13.5301   5.8951   9.4971   3.0408
20060630   6.6048   2.4081   4.3088   1.4040
20060930  12.3889   3.6053   9.1455   2.0754
20061231  16.5100   3.3659  12.4682   1.8810
20070331  15.8754   5.9129  11.5833   3.6736
20070630  10.4155   3.5759   7.8966   2.2812
20070930  18.2929   3.5280  14.3552   2.1584
20071231  27.7905   5.4510  23.7820   3.2568

And use pandas function plot to create a barplot object

>>> fig = dt.plot(kind='bar', use_index=True)
>>> fig
<matplotlib.axes.AxesSubplot object at 0x0B387150>

But I want a <matplotlib.figure.Figure object> instead to pass to other function, just like the object type below:

>>> plt.figure()
<matplotlib.figure.Figure object at 0x123A6910>

So how can I transform <matplotlib.axes.AxesSubplot object> to <matplotlib.figure.Figure object> or directly return "Figure object" from Pandas plot ?

1 Answer 1

36

You can get the figure from the axes object:

ax.get_figure()

Full example:

df = pd.DataFrame({'a': range(10)})
ax = df.plot.barh()
ax.get_figure()
Sign up to request clarification or add additional context in comments.

2 Comments

I used this in the return statement from my function to get the object representing my plot
plot method return axes Returns: matplotlib.axes.Axes or numpy.ndarray of them

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.