我正在尝试创建数据帧直方图并将其另存为文件。
这是我的代码:
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()。
我非常希望尽可能整齐地解决这个问题,这样我就可以顺利地将解决方案带到其他应用程序中,而不必每次必须使用不同的管道磁带修复程序。
感谢您的帮助!
答案 0 :(得分:8)
您可以尝试以下代码吗?
import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
df.hist('ColumnName', ax=ax)
fig.savefig('example.png')