Prezados Srs. Procurei en vários sites e não consegui achar: tenho um longo Eletrencefalograma que desejo mover para direita e esquerda. Ele está plotado com o uso da biblioteca MNE.
encontrei como fazer o zoom (Scroll event — Matplotlib 3.7.1 documentation), mas não é isso que quero, como disse quero rolar o plot para direita e esquerda. Criei um código que “rola” o plot mas os trechos novos estão em branco.
aqui como é plotado:
self.fig_home = raw.plot(events=None, duration=12.0, start=scroll_position, n_channels=20, bgcolor='w', color=None,
bad_color=(0.8, 0.8, 0.8), event_color='cyan', remove_dc=True, order=None,
show_options=True, title=None, show=False, block=False, highpass=None, lowpass=None,
filtorder=4, clipping=1.5, show_first_samp=False, proj=True, group_by='type',
butterfly=False, decim='auto', noise_cov=None, event_id=None, show_scrollbars=True,
show_scalebars=True, verbose=None)
aqui o código que “rola” mas não atualiza o plot:
def on_scroll(self, event):
if event is not None and event.inaxes is not None and event.inaxes.get_navigate():
# Check if the scroll event is horizontal
if event.button == 'up' or event.button == 'down':
scroll_amount = 1 if event.button == 'up' else -1 # Set scroll amount based on scroll direction
scroll_position = self.fig_home.axes[0].get_xlim()[0] # Get the current scroll position
new_scroll_position = scroll_position + scroll_amount # Move 1 unit ahead or behind
self.fig_home.axes[0].set_xlim(new_scroll_position,
new_scroll_position + 12) # Update the x-axis limits
canvas_widget = event.canvas
canvas_widget.draw() # Redraw the plot
canvas_widget.blit(canvas_widget.copy_from_bbox(self.fig_home.bbox)) # Update the canvas
Qualquer dica é de imensa ajuda. Agradeço antecipadamente.