File: plot_with_matplotlib.py

package info (click to toggle)
neo 0.14.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 10,400 kB
  • sloc: python: 45,316; makefile: 92; sh: 16
file content (42 lines) | stat: -rw-r--r-- 1,174 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
"""
Plotting a Neo object with matplotlib
=====================================

"""

import urllib

import numpy as np
import quantities as pq
from matplotlib import pyplot

import neo

distantfile = "https://web.gin.g-node.org/NeuralEnsemble/ephy_testing_data/raw/master/plexon/File_plexon_3.plx"
localfile = "File_plexon_3.plx"

urllib.request.urlretrieve(distantfile, localfile)

# reader = neo.io.NeuroExplorerIO(filename='File_neuroexplorer_2.nex')
reader = neo.io.PlexonIO(filename="File_plexon_3.plx")

bl = reader.read(lazy=False)[0]
for seg in bl.segments:
    print("SEG: " + str(seg.file_origin))
    fig = pyplot.figure()
    ax1 = fig.add_subplot(2, 1, 1)
    ax2 = fig.add_subplot(2, 1, 2)
    ax1.set_title(seg.file_origin)
    ax1.set_ylabel("arbitrary units")
    mint = 0 * pq.s
    maxt = np.inf * pq.s
    for i, asig in enumerate(seg.analogsignals):
        times = asig.times.rescale("s").magnitude
        asig = asig.magnitude
        ax1.plot(times, asig)

    trains = [st.rescale("s").magnitude for st in seg.spiketrains]
    colors = pyplot.cm.jet(np.linspace(0, 1, len(seg.spiketrains)))
    ax2.eventplot(trains, colors=colors)

pyplot.show()