有时,我的代码运行得很快,并且退出(例如:占用2秒),有时它挂起(例如:最多分钟)*。这种行为似乎完全是随机的。在到处添加了打印语句之后,它似乎始终保持savefig()
。有什么想法可以解释为什么会发生这种情况,如何进一步调查,或者如何应对?
当它停止时,Ctr-x
Ctr-c
没有效果。
当我终止程序(使用Ctrl-\
)时,通常会说“Python在使用macosx.so插件时意外退出”--我认为这是matplotlib后端,所以可能这就是问题所在?
谢谢。
*这在没有运行其他程序/任务的情况下发生。晚上看电视的时候,内存和cpu的使用率都不高。
我在OSX10.8.4上运行Python2.7.2
我的代码示意图:
from matplotlib import pyplot as plt
fig = plt.figure(figsize=fig_size)
fig.subplots_adjust(left=subplot_position[0], right=subplot_position[1])
ax1 = fig.add_subplot(111)
# Do lots of stuff ....
fig_name = GetFigureName(fig_num, figure_output_filename) # some string
fig.savefig(fig_name, dpi=resolution_factor*fig.get_dpi()) # resolution_factor ~ 1.0
最佳答案
尝试保存.pdf文件时,savefig挂起也有类似的问题。当我试图将它保存为.png时,它完成了。虽然情节中有很多极端的情节。。。
我的理由是:
因为.pdf(或其他矢量图形类型)保存了每个点,savefig()尝试保存所有点,似乎是挂起的。
但是,当保存为花名册图形(png、jpeg等)时,仅保存图形的视觉表示,即仅保存再次显示此图像所需的屏幕像素的确切数量。
建议保存到花名册图形可以降低缩放图像时的质量。