在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
答案 0 :(得分:0)
最后我自己弄清楚了。
每当我执行该功能时,我总是会收到以下日志消息,但是由于缺乏了解,我一直忽略它。
后端TkAgg是交互式后端。打开交互模式。
但是后来我意识到它可能是在交互模式下运行的(这不是我的目的)。因此,我发现有一种关闭它的方法,如下所示。
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
这解决了我的问题。
注意:应按照此处给定的顺序导入use
后立即调用matplotlib
。