如何从Pandas绘图函数返回matplotlib.figure.Figure对象

16 投票
1 回答
16045 浏览
提问于 2025-04-17 16:15

我有一个 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()

撰写回答