Jupyter notebook 中使用可交互 matplotlib 后端

问题描述

以前我是本地运行 mne.io.Raw.plot 函数来实现交互的(从 Python脑电数据处理EEG-基于MNE包-1.环境配置与数据读取 <12:47>视频中学到的),现在我的数据和相应的算法都放在了服务器上,然后通过 VSCode 的远程连接插件 Remote - SHH 实现代码编写,但是此时如果还想像那样使用就会报如下错误:

在这里插入图片描述

这是因为Jupyter 在不支持 GUI 的输出在虚拟环境中运行,因为无法通过 VSCode 打开新窗口。网上搜到的大部分都是说在代码编辑器(Spyder,甚至 IDLE)上本地运行确保可以打开一个新窗口以供 GUI 初始化,这里我就没有尝试去下载 Pycharm 然后测试了,我就是想在 VSCode 中打开并编辑。

解决方案

因此我们现在需要更改 matplotlib 的后端渲染,你需要安装以下两个包,可以通过 pip 安装或者通过 conda 安装

pip install ipywidgets ipympl
# or
conda install anaconda::ipywidgets
conda install conda-forge::ipympl

安装完成后你就可以正确调用后端渲染了:

import mne
import matplotlib.pyplot as plt
%matplotlib widget

raw = mne.io.read_raw_cnt('...')
raw.plot(scalings=dict(eeg=80e-6))

如下图所示,已经是在远程 Jupyter 中实现基本的交互了,虽然相较于窗口丑了点,但是好歹能用了。

请添加图片描述

注意: 我仅在 VSCode 的远程连接 Jupyter 环境中测试了可用性,浏览器远程连接 Jupyter 和通过 VSCode 连接 WSL 的情况未测试,不过原理相同,应该都可用。

参考:

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值