多个交互式 matplotlib 窗口没有响应

问题描述

我目前正在使用 Matplotlib 在 Python 中编写程序,我需要根据另一个窗口的 on_pick 函数打开一个窗口。我还需要两个窗口都是交互式的,使用事件处理和小部件。这适用于第一个窗口,但是当我在第一个窗口的 on_pick 内打开第二个窗口时,第二个窗口的小部件不起作用。

下面是问题的一些示例代码。

此代码用于图一

def on_pick(event):
        peptide_list = create_peptide_list(protein_list,accessions[event.ind])
        create_peptide_graphic(peptide_list,len(accessions))

create_peptide_graphic 是一个 def,它创建一个新图形,其中包含以下小部件:

def onselect(xmin,xmax):
    for peptide in peptide_list:
        if peptide.get_start() > xmin and peptide.get_end() < xmax and \
                (peptide.get_area()[0] > 0 or peptide.get_area()[1] > 0):
            print(f'{peptide.get_start()}-{peptide.get_end()}: {peptide.get_sequence()},{peptide.get_area()}')

slider = widgets.SpanSelector(ax,onselect,'horizontal',useblit=True,rectprops=dict(alpha=0.2,facecolor=color['light']),span_stays=True)

SpanSelector 不适用于第二个窗口。第一个 indow 仍然是交互式的并且工作正常。我尝试过使用 plt.ion()plt.show(block=False)。非常感谢任何帮助!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)