该函数仅在第二次才完成在“ hist”函数中的执行

时间:2018-10-02 06:48:48

标签: python python-2.7 dataframe matplotlib sklearn-pandas

在Python DataFrame中,我试图生成直方图,该函数在首次调用该函数时生成。但是,当第二次调用create_histogram函数时,它将停留在h = df.hist(bins=3, column="amount")处。当我说“卡住”时,我的意思是说它没有完成语句的执行并且执行不会继续到下一行,但是同时它不会给出任何错误或从执行中中断。这到底是什么问题,我该如何解决?

import matplotlib.pyplot as plt
...
...
    def create_histogram(self, field):
        df = self.main_df    # This is DataFrame
        h = df.hist(bins=20, column="amount")
        fileContent = StringIO()
        plt.savefig(fileContent, dpi=None, facecolor='w', edgecolor='w',
                    orientation='portrait', papertype=None, format="png",
                    transparent=False, bbox_inches=None, pad_inches=0.5,
                    frameon=None)
        content = fileContent.getvalue()
        return content

1 个答案:

答案 0 :(得分:0)

最后我自己弄清楚了。

每当我执行该功能时,我总是会收到以下日志消息,但是由于缺乏了解,我一直忽略它。

  

后端TkAgg是交互式后端。打开交互模式。

但是后来我意识到它可能是在交互模式下运行的(这不是我的目的)。因此,我发现有一种关闭它的方法,如下所示。

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt 

这解决了我的问题。

注意:应按照此处给定的顺序导入use后立即调用matplotlib