12345678910111213141516171819202122232425262728293031323334353637383940 |
- import neo
- import quantities as pq
- import numpy as np
- import matplotlib.pyplot as plt
- import seaborn as sns
- from viziphant.rasterplot import rasterplot_rates
- from utils import colormap
- import argparse
- if __name__ == '__main__':
- CLI = argparse.ArgumentParser()
- CLI.add_argument("--spikes", nargs='?', type=str)
- CLI.add_argument("--output", nargs='?', type=str)
- CLI.add_argument("--t_stop", "--T", nargs='?', type=float)
- CLI.add_argument("--t_start", nargs='?', type=float, default=0)
- args, unknown = CLI.parse_known_args()
- io = neo.io.get_io(args.spikes)
- spiketrains = io.read_block().segments[0].spiketrains
- spiketrains = [st.time_slice(args.t_start*pq.ms, args.t_stop*pq.ms)
- for st in spiketrains]
- sns.set(style='ticks', context='poster')
- fig, ax = plt.subplots(figsize=(25,13))
- ax, axx, axy = rasterplot_rates(spiketrains,
- ax=ax,
- key_list=['neuron_type'],
- labelkey='neuron_type',
- groupingdepth=1,
- colorkey='neuron_type',
- palette=[colormap['exc'], colormap['inh']],
- markerargs={'markersize':1, 'marker':'.'},
- pophistbins=100)
- ax.set_yticklabels(['E','I'])
- ax.set_xlabel('time [ms]')
- axy.set_xlabel('rate [Hz]')
- axy.set_xticklabels([float(axy.get_xticklabels()[0].get_text())*1000])
- plt.savefig(args.output, bbox_inches='tight')
|