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

时间:2015-07-23 19:07:54

标签: python-2.7 numpy pandas matplotlib

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

这是我的代码:

ax=df.hist('ColumnName')
fig=ax.get_figure()
fig.savefig('pictureName.png', dpi=100, 
bbox_inches='tight')

第一行工作正常;但是,第二行返回错误: AttributeError:'numpy.ndarray'对象没有属性'get_figure'。

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

正如this other question中所建议的那样,通常我会跳过get_figure()和fig.savefig(),而不是选择plt.savefig,但是我正在制作多个数字。根据我的经验,plt.savefig()在保存多个数字时是不可靠的,而是多次保存一个数字,即使我在每个数字创建和保存后使用fig.close()。

我非常希望尽可能整齐地解决这个问题,这样我就可以顺利地将解决方案带到其他应用程序中,而不必每次必须使用不同的管道磁带修复程序。

感谢您的帮助!

1 个答案:

答案 0 :(得分:8)

您可以尝试以下代码吗?

import pandas as pd
import matplotlib.pyplot as plt

fig, ax = plt.subplots()
df.hist('ColumnName', ax=ax)
fig.savefig('example.png')