def test_plot_epochs_nodata(): """Test plotting of epochs when no data channels are present.""" data = np.random.RandomState(0).randn(10, 2, 1000) info = create_info(2, 1000., 'stim') epochs = EpochsArray(data, info) with pytest.raises(ValueError, match='consider passing picks explicitly'): epochs.plot()
def test_plot_butterfly(): """Test butterfly view in epochs browse window.""" rng = np.random.RandomState(0) n_epochs, n_channels, n_times = 50, 30, 20 sfreq = 1000. data = np.sin(rng.randn(n_epochs, n_channels, n_times)) events = np.array([ np.arange(n_epochs), [0] * n_epochs, np.ones([n_epochs], dtype=np.int64) ]).T chanlist = [ 'eeg' if chan < n_channels // 3 else 'ecog' if chan < n_channels // 2 else 'seeg' for chan in range(n_channels) ] info = create_info(n_channels, sfreq, chanlist) epochs = EpochsArray(data, info, events) fig = epochs.plot(butterfly=True) keystotest = [ 'b', 'b', 'left', 'right', 'up', 'down', 'pageup', 'pagedown', '-', '+', '=', 'f11', 'home', '?', 'h', 'o', 'end' ] for key in keystotest: fig.canvas.key_press_event(key) fig.canvas.scroll_event(0.5, 0.5, -0.5) # scroll down fig.canvas.scroll_event(0.5, 0.5, 0.5) # scroll up fig.canvas.resize_event() fig.canvas.close_event() # closing and epoch dropping plt.close('all')
def test_plot_overlapping_epochs_with_events(): """Test drawing of event lines in overlapping epochs.""" data = np.zeros(shape=(3, 2, 100)) # 3 epochs, 2 channels, 100 samples sfreq = 100 info = create_info(ch_names=('a', 'b'), ch_types=('misc', 'misc'), sfreq=sfreq) # 90% overlap, so all 3 events should appear in all 3 epochs when plotted: events = np.column_stack(([50, 60, 70], [0, 0, 0], [1, 2, 3])) epochs = EpochsArray(data, info, tmin=-0.5, events=events) fig = epochs.plot(events=events, picks='misc') assert len(fig.mne.event_lines.get_segments()) == 9
def test_plot_butterfly(): """Test butterfly view in epochs browse window.""" rng = np.random.RandomState(0) n_epochs, n_channels, n_times = 50, 30, 20 sfreq = 1000. data = np.sin(rng.randn(n_epochs, n_channels, n_times)) events = np.array([np.arange(n_epochs), [0] * n_epochs, np.ones([n_epochs], dtype=np.int)]).T chanlist = ['eeg' if chan < n_channels // 3 else 'ecog' if chan < n_channels // 2 else 'seeg' for chan in range(n_channels)] info = create_info(n_channels, sfreq, chanlist) epochs = EpochsArray(data, info, events) fig = epochs.plot(butterfly=True) keystotest = ['b', 'b', 'left', 'right', 'up', 'down', 'pageup', 'pagedown', '-', '+', '=', 'f11', 'home', '?', 'h', 'o', 'end'] for key in keystotest: fig.canvas.key_press_event(key) fig.canvas.scroll_event(0.5, 0.5, -0.5) # scroll down fig.canvas.scroll_event(0.5, 0.5, 0.5) # scroll up fig.canvas.resize_event() fig.canvas.close_event() # closing and epoch dropping plt.close('all')