import pandas as pd import holoviews as hv from holoviews import opts spike_train = pd.read_csv('../assets/spike_train.csv.gz') spike_train.head(n=3) curve = hv.Curve( spike_train, 'milliseconds', 'Hertz', label='Firing Rate') spikes = hv.Spikes(spike_train, 'milliseconds', [], label='Spike Train') layout = curve + spikes layout hv.extension('bokeh', 'matplotlib') layout layout.opts( opts.Curve( height=200, width=900, xaxis=None, line_width=1.50, color='red', tools=['hover']), opts.Spikes(height=150, width=900, yaxis=None, line_width=0.25, color='grey')).cols(1) dotted_options = opts.Curve(color='purple', width=600, height=250, line_dash='dotted') dotted_options dotted = hv.Curve(spike_train, 'milliseconds', 'Hertz') dotted.opts(dotted_options) dashed = hv.Curve( spike_train, 'milliseconds', 'Hertz') dashed.opts(color='orange', width=600, height=250, line_dash='dashed') dashed.opts.info() layout = layout.opts( opts.Curve( aspect=6, xaxis=None, color='blue', linewidth=2, show_grid=False, linestyle='dashed', backend='matplotlib'), opts.Spikes(aspect=6, yaxis='bare', color='red', linewidth=0.25, backend='matplotlib'), opts.Layout(sublabel_format='', vspace=0.1, fig_size=200, backend='matplotlib')) layout hv.output(layout, backend='matplotlib', fig='svg') hv.output(backend='bokeh') spikes.select(milliseconds=(2000,4000)) spikes.select(milliseconds=(2000,4000)).opts.clear() spikes = spikes.redim.label(milliseconds='Time in milliseconds (10⁻³ seconds)') curve = curve.redim.label(Hertz='Frequency (Hz)') (curve + spikes).select(milliseconds=(2000,4000)).cols(1)