我对pyplot窗口有问题。当我在绘图完成后尝试更改窗口大小时,我得到以下异常:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1532, in __call__
return self.func(*args)
File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 277, in resize
self.resize_event()
File "C:\Python27\lib\site-packages\matplotlib\backend_bases.py", line 1788, in resize_event
self.callbacks.process(s, event)
File "C:\Python27\lib\site-packages\matplotlib\cbook.py", line 540, in process
proxy(*args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\cbook.py", line 415, in __call__
return mtd(*args, **kwargs)
File "C:\Python27\lib\site-packages\matplotlib\animation.py", line 859, in _handle_resize
self._init_draw()
File "C:\Python27\lib\site-packages\matplotlib\animation.py", line 1077, in _init_draw
self._draw_frame(next(self.new_frame_seq()))
StopIteration
绘图由:
完成self.ani = animation.FuncAnimation(self.fig, self._set_data, self._is_running(), interval=20, repeat=False, blit=True)
plt.show()
绘图完成后一切正常。最大化窗口后,抛出异常,窗口最大化但全部为灰色(无绘图)。然后我再次改变它的大小,一切都恢复正常,绘制了绘图。有人能指出我的错误或在哪里寻找答案?
操作系统:Windows 7
Python:2.9 32b
Matplotlib ver:1.4.2,后端:TkAgg
答案 0 :(得分:1)
在使用大量数据时,我遇到了类似的问题(在Fedora上)。但是有不同的错误:OverflowError: In draw_path: Exceeded cell block limit
。保存具有高dpi分辨率的图像时出现同样的错误,如plt.savefig('example.png', dpi=282)
。低dpi参数没有错误。
我在https://github.com/matplotlib/matplotlib/issues/5907
找到了我的问题的解决方案所以,基本答案是:
尝试:
import matplotlib as mpl
mpl.rcParams['agg.path.chunksize'] = 10000 # the default is 0
您可以在matplotlibrc文件中更改它以使其成为默认值。您可以在以下位置找到matplotlibrc位置:
matplotlib.matplotlib_fname()
然后您可以更改agg.path.chunksize
参数,取消注释该行并设置新的默认值:
agg.path.chunksize : 10000