如何从Pandas绘图函数返回matplotlib.figure.Figure对象
我有一个 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
然后我使用 pandas 的 plot
函数来创建一个柱状图对象。
>>> fig = dt.plot(kind='bar', use_index=True)
>>> fig
<matplotlib.axes.AxesSubplot object at 0x0B387150>
但是我想要一个 <matplotlib.figure.Figure object>
,这样我就可以把它传递给其他函数,就像下面这种对象类型:
>>> plt.figure()
<matplotlib.figure.Figure object at 0x123A6910>
那么我该如何把 <matplotlib.axes.AxesSubplot object>
转换成 <matplotlib.figure.Figure object>
,或者直接从 Pandas 的绘图中返回 "Figure object" 呢?
1 个回答
34
你可以从坐标轴对象中获取图形:
ax.get_figure()
完整示例:
df = pd.DataFrame({'a': range(10)})
ax = df.plot.barh()
ax.get_figure()