#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @Author: Niccolò Bonacchi
# @Date: Friday, October 16th 2020, 5:53:15 pm
# PLOTTING
from ibllib.plots import color_cycle, squares, vertical_lines
from ibllib.io.extractors import ephys_fpga
import matplotlib.pyplot as plt
import numpy as np
[docs]
def plot_rfmapping(times_interp_RF, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
vertical_lines(times_interp_RF, ymin=0, ymax=1, color=color_cycle(9), ax=ax, label='RFframe_times')
ax.legend()
[docs]
def plot_sync_channels(sync, sync_map, ax=None):
# Plot all sync pulses
if ax is None:
f, ax = plt.subplots(1, 1)
for i, device in enumerate(['frame2ttl', 'audio', 'bpod']):
sy = ephys_fpga.get_sync_fronts(sync, sync_map[device]) # , tmin=t_start_passive)
squares(sy['times'], sy['polarities'], yrange=[0.1 + i, 0.9 + i], color='k', ax=ax)
[docs]
def plot_passive_periods(passivePeriods_df, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
# Update plot
vertical_lines(
np.r_[passivePeriods_df.loc['start'], passivePeriods_df.loc['stop']],
ymin=-1,
ymax=4,
color=color_cycle(0),
ax=ax,
label='spacers',
)
ax.legend()
[docs]
def plot_gabor_times(passiveGabor_df, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
# Update plot
vertical_lines(
passiveGabor_df['start'].values,
ymin=0,
ymax=1,
color=color_cycle(1),
ax=ax,
label='GaborOn_times',
)
vertical_lines(
passiveGabor_df['stop'].values,
ymin=0,
ymax=1,
color=color_cycle(2),
ax=ax,
label='GaborOff_times',
)
ax.legend()
[docs]
def plot_valve_times(passiveValve_intervals, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
# Update the plot
vertical_lines(
passiveValve_intervals[:, 0],
ymin=2,
ymax=3,
color=color_cycle(3),
ax=ax,
label='ValveOn_times',
)
vertical_lines(
passiveValve_intervals[:, 1],
ymin=2,
ymax=3,
color=color_cycle(4),
ax=ax,
label='ValveOff_times',
)
ax.legend()
[docs]
def plot_audio_times(passiveTone_intervals, passiveNoise_intervals, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
# Look at it
vertical_lines(
passiveTone_intervals[:, 0],
ymin=1,
ymax=2,
color=color_cycle(5),
ax=ax,
label='toneOn_times',
)
vertical_lines(
passiveTone_intervals[:, 1],
ymin=1,
ymax=2,
color=color_cycle(6),
ax=ax,
label='toneOff_times',
)
vertical_lines(
passiveNoise_intervals[:, 0],
ymin=1,
ymax=2,
color=color_cycle(7),
ax=ax,
label='noiseOn_times',
)
vertical_lines(
passiveNoise_intervals[:, 1],
ymin=1,
ymax=2,
color=color_cycle(8),
ax=ax,
label='noiseOff_times',
)
ax.legend()
[docs]
def plot_stims_times(passiveStims_df, ax=None):
if ax is None:
f, ax = plt.subplots(1, 1)
# Look at it
vertical_lines(
passiveStims_df['valveOn'].values,
ymin=2,
ymax=3,
color=color_cycle(3),
ax=ax,
label='ValveOn_times',
)
vertical_lines(
passiveStims_df['valveOff'].values,
ymin=2,
ymax=3,
color=color_cycle(4),
ax=ax,
label='ValveOff_times',
)
ax.legend()
vertical_lines(
passiveStims_df['toneOn'].values,
ymin=1,
ymax=2,
color=color_cycle(5),
ax=ax,
label='toneOn_times',
)
vertical_lines(
passiveStims_df['toneOff'].values,
ymin=1,
ymax=2,
color=color_cycle(6),
ax=ax,
label='toneOff_times',
)
vertical_lines(
passiveStims_df['noiseOn'].values,
ymin=1,
ymax=2,
color=color_cycle(7),
ax=ax,
label='noiseOn_times',
)
vertical_lines(
passiveStims_df['noiseOff'].values,
ymin=1,
ymax=2,
color=color_cycle(8),
ax=ax,
label='noiseOff_times',
)
ax.legend()
# plt.show()