如何在MNE-Python中绘制完整EEG记录而非滚动查看epochs?
MNE绘制完整单通道EEG信号的三种实现方法
1. 给raw.plot()添加参数调整视图
默认raw.plot()会加载数据中的事件标记,进而触发类epochs的视图。只需通过参数关闭事件显示,就能切换到连续信号视图:
raw.plot(picks="Pz", events=None, duration=60)
events=None:强制不加载任何事件,避免触发epochs视图duration=60:设置单次显示的时长(单位:秒),默认是10秒,调大后能查看更长段的连续信号
2. 使用MNE内置的plot_time_series函数
MNE 0.24版本之后提供了mne.viz.plot_time_series(),专门用于绘制连续时间序列,不会附带事件/epochs相关的视图,用法如下:
import mne # 提取Pz通道的数据和时间轴 data, times = raw.get_data(picks="Pz", return_times=True) # 绘制连续信号 mne.viz.plot_time_series(times, data.T, channel_names=["Pz"])
这个函数保留了MNE绘图的交互性,同时不会受事件标记干扰。
3. 提取原始数据后用Matplotlib绘制
如果习惯Pandas绘图的风格,可以直接从Raw对象中提取数据,用Matplotlib手动绘制:
import matplotlib.pyplot as plt # 提取Pz通道的数据和时间轴 data, times = raw.get_data(picks="Pz", return_times=True) # 绘制信号 plt.figure(figsize=(12, 4)) plt.plot(times, data[0]) plt.xlabel("Time (s)") plt.ylabel("Amplitude (µV)") plt.title("EEG Signal at Channel Pz") plt.show()
这种方式完全自定义,能按需调整图表的样式和布局。
内容的提问来源于stack exchange,提问作者Jonas van Nijnatten
相关产品推荐
相关产品推荐

