【发布时间】:2023-04-02 12:50:01
【问题描述】:
有没有办法在 matplotlib 中设置 CheckButtons 的逻辑状态并触发onclick() 回调?
这是我的场景:
我正在显示一个包含大量跟踪 (50+) 的图表,并希望根据用户通过CheckButton 选择的一些固定查询,让用户可以选择显示其中的一个子集。每次单击按钮时,脚本都会通过get_status() 获取所有当前CheckButtons 的状态,计算符合所选标准的迹线的索引,并相应地更新显示。
为了让用户的生活更轻松,我还希望有一个“全选”和“全部清除”按钮。我能想出的实现这些的最佳方法是在不触发on_click() 回调的情况下强制所有 CheckButtons 的逻辑状态为 True 或 False,然后相应地设置跟踪的可见性。
但是,CheckButton() 没有 set_status() 方法
https://matplotlib.org/api/widgets_api.html#matplotlib.widgets.CheckButtons
有一个set_active() 方法,但根据文档,如果eventson 为真,它会触发回调。
有人可以给我一些建议吗?我是否需要为 wdget 设置 eventson=False,然后是 set_active()=True,然后是 eventson=True?看起来相当笨重,但我想不出更优雅的方式,即使花费了太多时间。
谢谢!
【问题讨论】:
标签: python python-2.7 matplotlib matplotlib-widget