0

在使用 Python 的MNE中,一旦调用 def 完全执行,我想保持交互式绘图窗口打开。

但是,这无法通过以下代码实现:

def get_plot():
    sample_data_folder = mne.datasets.sample.data_path()
    sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
                                        'sample_audvis_raw.fif')
    raw = mne.io.read_raw_fif(sample_data_raw_file)
    raw.plot()

get_plot()

这样,一旦get_plot()完成,绘图窗口就会自动关闭。

另外,我使用的是带有PyCharm 2020.1.3 的 Windows 10。

我可以知道如何处理这个问题吗?

4

1 回答 1

0

在 PyCharm 中获取交互式绘图。第Show plots in tool window一个需要禁用。

禁用设置 | 工具 | Python 科学 | 在工具窗口中显示图

然后,matplotlib.use('TkAgg')应该允许创建一个interactive plot window.

跨国公司plot()基于 matplotlib. 请参阅源文件plot_raw。基于OPmatplotlib配备可以传递给的块参数plt.show()。即使在函数成功调用后,这也允许绘图打开。

显然, mne 组也包含此参数。

因此,上述目标可以通过简单的设置来实现plot(block=True)

然后,完整的代码是

import mne
import matplotlib
matplotlib.use('TkAgg')

def get_plot():
    sample_data_folder = mne.datasets.sample.data_path()
    sample_data_raw_file = os.path.join(sample_data_folder, 'MEG', 'sample',
                                        'sample_audvis_raw.fif')
    raw = mne.io.read_raw_fif(sample_data_raw_file)
    raw.plot(block=True)

get_plot()
于 2020-07-20T13:54:49.437 回答