Python Playground错误:Boids Interactive在MatlibPlot中单击

时间:2019-12-11 15:31:25

标签: python python-3.x matplotlib

我一直在使用python游乐场书来学习一些python。浏览了有关Boids代码的章节。它使用matlibplot本质上用规则绘制成群“运动”的圆。

我遇到的问题是button_press_event部分。该事件的目的是: 左键单击-在鼠标位置添加Boid。 右键单击-将当前群分散在鼠标位置。

但是,当我单击情节时,我得到一个错误。这不会使程序崩溃,并且会显示以下消息:

this

据我了解,这意味着它实际上无法接受事件(左键或右键单击)或输入中缺少该事件。

是什么导致此错误?如何解决?谢谢

这是本书一章中的代码(来自github并进行了更正):

>   File
> "C:\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\cbook\__init__.py",
> line 388, in process
>     proxy(*args, **kwargs)   File "C:\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\cbook\__init__.py",

> line 228, in __call__
>     return mtd(*args, **kwargs) TypeError: buttonPress() missing 1 required positional argument: 'event'

1 个答案:

答案 0 :(得分:0)

我相信您需要写(注意boids上的小“ b”):

cid = fig.canvas.mpl_connect('button_press_event', boids.buttonPress)

因为boids是类Boids的实例,而Boids.buttonPress()不是静态函数,因此不能直接从类Boids

调用