在ipython Notebook中,首先创建一个pandas Series对象,然后通过调用实例方法.hist(),浏览器将显示该图。
我想知道如何将该图形保存到文件中(不是通过右键单击另存为,而是脚本中所需的命令)。
Answers:
使用Figure.savefig()
方法,如下所示:
ax = s.hist() # s is an instance of Series
fig = ax.get_figure()
fig.savefig('/path/to/figure.pdf')
它不必以结尾结尾pdf
,有很多选择。查看文档。
或者,您可以使用该pyplot
接口,并仅savefig
作为函数调用来保存最近创建的图形:
import matplotlib.pyplot as plt
s.hist()
plt.savefig('path/to/figure.pdf') # saves the current figure
import matplotlib.pyplot as plt
和plt.close()
。
fig.clf()
清除该图形。
您可以使用ax.figure.savefig()
:
import pandas as pd
s = pd.Series([0, 1])
ax = s.plot.hist()
ax.figure.savefig('demo-file.pdf')
ax.get_figure().savefig()
与Philip Cloud的答案中所建议的相比,这没有实际的好处,因此您可以选择最美观的选项。实际上,get_figure()
只需返回self.figure
:
# Source from snippet linked above
def get_figure(self):
"""Return the `.Figure` instance the artist belongs to."""
return self.figure
AttributeError: 'numpy.ndarray' object has no attribute 'get_figure'
,则可能正在绘制多个列,例如s.hist(columns=['colA', 'colB'])
。在这种情况下,ax
将是所有轴的数组。您可以尝试ax[0].get_figure()
或ax[0][0].get_figure()