Added function raw_traces_plot

This commit is contained in:
2024-09-19 15:22:41 +02:00
parent 976e8c6574
commit a42148cc13

View File

@ -22,6 +22,10 @@ from dask import delayed
import time import time
import ipywidgets as widgets
from IPython.display import display, clear_output
# %% Functions for listing files with specific string in name # %% Functions for listing files with specific string in name
@ -2088,3 +2092,58 @@ def resample_to_dt(dir_path_pbp, dt=60, path_parquet='', save_final_data=False):
append=False) append=False)
#%% Widget to plot raw traces
def raw_traces_plot(ch0_plot=[], ch1_plot=[],
add_str_title='',
xmin=None, xmax=None,
ddf_processed=False, verbose=False,
):
current_event_index = 1
def update_plot(event_index):
fig, ax1 = plt.subplots(figsize=(5, 3), layout='constrained')
if verbose and ddf_processed.any().any():
ax1.text(0.75, 0.4, 'ch0_flag_000: '+str(ddf_processed.iloc[event_index]['ch0_flag_000']), fontsize=8, transform=ax1.transAxes)
ax1.set_title(add_str_title+' , idx: '+str(event_index)+'\n'+str(ch0_plot.iloc[event_index].name))
ax1t = ax1.twinx()
if len(ch0_plot)!=0:
ax1.plot(ch0_plot.iloc[event_index], label='ch0', c='C0', ls='-')
if len(ch1_plot)!=0:
ax1t.plot(ch1_plot.iloc[event_index], label='ch1', c='C1', ls='-')
ax1.set_ylabel('Scattering', color='tab:blue')
ax1.tick_params(axis='y', labelcolor='tab:blue')
ax1.legend(loc=1)
ax1t.legend(loc=4)
if xmin and xmax is not None:
ax1.set_xlim(xmin, xmax)
plt.show()
def handle_forward_button_click(b):
nonlocal current_event_index
current_event_index = min(current_event_index + 1, len(ch0_plot) - 1)
event_slider.value = current_event_index
def handle_backward_button_click(b):
nonlocal current_event_index
current_event_index = max(current_event_index - 1, 0)
event_slider.value = current_event_index
event_slider = widgets.IntSlider(min=0, max=len(ch0_plot) - 1, step=1, value=current_event_index, description='Event:')
forward_button = widgets.Button(description='Forward')
backward_button = widgets.Button(description='Backward')
forward_button.on_click(handle_forward_button_click)
backward_button.on_click(handle_backward_button_click)
display(widgets.HBox([backward_button, forward_button]))
interactive_plot = widgets.interactive(update_plot, event_index=event_slider)
display(interactive_plot)