Python 将dataframe.hist()保存到文件中

Python 将dataframe.hist()保存到文件中,python,pandas,numpy,matplotlib,Python,Pandas,Numpy,Matplotlib,我正在尝试创建一个数据帧直方图并将其保存为文件 这是我的密码: ax=df.hist('ColumnName') fig=ax.get_figure() fig.savefig('pictureName.png', dpi=100, bbox_inches='tight') 第一行很好;但是,第二行返回一个错误: AttributeError:'numpy.ndarray'对象没有属性'get\u figure' 由于显示了应用于series.hist()的get_figure(),我还尝试了

我正在尝试创建一个数据帧直方图并将其保存为文件

这是我的密码:

ax=df.hist('ColumnName')
fig=ax.get_figure()
fig.savefig('pictureName.png', dpi=100, bbox_inches='tight')
第一行很好;但是,第二行返回一个错误: AttributeError:'numpy.ndarray'对象没有属性'get\u figure'

由于显示了应用于series.hist()的get_figure(),我还尝试了使用
ax=df['ColumnName'].hist()
,它成功地生成了一个直方图,但在我尝试实现get_figure()时导致了相同的错误消息

按照中的建议,通常我会跳过get_figure()和fig.savefig(),而选择plt.savefig,但我正在制作多个图形。根据我的经验,plt.savefig()在保存多个图形时是不可靠的,而不是多次保存一个图形,即使在每次创建和保存图形后使用fig.close()也是如此

我非常希望尽可能巧妙地解决这个问题,这样我就可以将解决方案顺利地应用到其他应用程序中,而不是每次必须绘制图形时都必须使用不同的管道胶带修复


谢谢你的帮助

你能试试下面的代码吗

将熊猫作为pd导入
将matplotlib.pyplot作为plt导入
图,ax=plt.子批次()
df.hist('ColumnName',ax=ax)
fig.savefig('example.png'))

很好,谢谢!你能解释一下原因吗?每次我想保存一个图表时,使用plt.subplot()几乎是多余的。我还想知道为什么get_figure()在我的上下文中不起作用。@user36869
fig,ax
是在调用
plt.subplot()时成对创建的。或者,根据您看到的特定错误,
ax
对象位于
numpy.array
中,您可以使用
fig=ax[0][0]。get_figure()
也返回
figure
对象。当您在一个大数字中放置多个子图形时,这两个维度将保留给
nrows
ncols
。如果没有可用的$DISPLAY,则需要在
import matplotlib
matplotlib之前添加。使用('Agg')
(必须出现在pyplot导入之前,可能还需要导入)