Matplotlib - _tkinter.TclError:屏幕距离不好“320.0”

时间:2012-04-29 18:37:29

标签: python windows matplotlib tkinter 64-bit

File "main.py", line 52, in <module>
    r2n(name)

  File "C:\Users\Riki\Documents\Universita\Erasmus\Personalization and Metadata modeling 02817\Final Project\friends_followers__redis_to_networkx.py", line 69, in r2n

    **nx.draw_spring(g,node_size=50,node_color='#32CD32',node_shape='o',edge_color='.1',with_labels=True,width=0.5)**

  File "C:\Python27\lib\site-packages\networkx-1.6-py2.7.egg\networkx\drawing\nx_pylab.py", line 876, in draw_spring
    draw(G,spring_layout(G),**kwargs)

  File "C:\Python27\lib\site-packages\networkx-1.6-py2.7.egg\networkx\drawing\nx_pylab.py", line 124, in draw
    cf=pylab.gcf()

  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 369, in gcf
    return figure()

  File "C:\Python27\lib\site-packages\matplotlib\pyplot.py", line 343, in figure
    **kwargs)

  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 81, in new_figure_manager
    canvas = FigureCanvasTkAgg(figure, master=window)

  File "C:\Python27\lib\site-packages\matplotlib\backends\backend_tkagg.py", line 188, in __init__
    self._tkcanvas.create_image(w/2, h/2, image=self._tkphoto)

  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2198, in create_image
    return self._create('image', args, kw)

  File "C:\Python27\lib\lib-tk\Tkinter.py", line 2189, in _create
    *(args + self._options(cnf, kw))))

**_tkinter.TclError: bad screen distance "320.0"**

嗨,我正在使用适用于Windows 64bit的Python 2.7。 突然发生了这个问题,但是我的代码应该没问题因为之前正在工作(没有任何改变,情节可见)。

我认为这是图书馆的一个问题,我该怎么办?

1 个答案:

答案 0 :(得分:1)

在创建画布项目之前,尝试将坐标转换为int。例如:

self._tkcanvas.create_image(int(w/2), int(h/2), image=self._tkphoto)

我非常感谢这个答案,因为它给了我很多帮助;我希望我可以添加一个单独的答案,但我不能因为它已关闭 - 所以发布一个编辑:

对我而言不需要更改matplotlib库文件的解决方案是简单地为override a method创建一个新类,两个有问题的方法是__init__和{ {1}}(奇怪的是,我只需要重载resize,甚至不必在那里修复它,它开始为我工作了吗?)

无论如何,请注意以下内容是从Python2.7 Matplotlib中复制的 - 您最好先检查本地matplotlib版本,然后从那里复制:

resize