Plot a 2D array of data¶
Dispose a two dimensional array of data into a grid.
In this example, we generate a dataset of EEG signals composed with 125 trials of 4000 time points each. After opening the interface, you should notice two layouts :
- The first one, on the left composed with a grid of all of the 125 signals. To be readable, the grid is re-arranged in a 25 rows by 5 columns of signals. The first signal (0) is localized in the bottom left corner. The last signal (125) is localized in the upper right corner. Finally, double click on a signal to enlarge it.
- The right panel can only display one signal but offer multiple plotting forms (line, marker, histogram, time-frequency map, PSD)
- Mouse wheel on the grid canvas : zoom
- Mouse press and hold : move the center of the camera
- Double click on the grid canvas (left) to enlarge the signal
- Double click on the signal canvas (right) to insert annotations
- Press <delete> on both to reset the camera
from visbrain import Signal from visbrain.utils import generate_eeg sf = 512. # sampling frequency n_pts = 4000 # number of time points n_trials = 120 # number of trials in the dataset """Generate a random EEG dataset of shape (n_trials, n_pts). Also get the associated time vector with the same length as the data. """ data, time = generate_eeg(sf=sf, n_pts=n_pts, n_trials=n_trials, smooth=200, noise=100) time += 8. # force the time vector to start at 8 seconds time *= 1000. # millisecond conversion """The data have a shape of (125 channels, 4000 time points). In order to work, the program need to know that the time axis is not the first dimension. Hence, we use the `axis` parameter to specify that the time axis is the second one `axis=1` """ axis = 1 # localization of the time axis """Add a label to the x-axis (xlabel), y-axis (ylabel) and a title """ xlabel = 'Time (ms)' ylabel = 'Amplitude (uV)' title = 'Plot of a 1-d signal' """Build the title to add to each time-series in the grid """ gtitles = ['Trial ' + str(k) for k in range(n_trials)] # grid titles gfz = 8. # grid titles font-size glw = 2. # grid line width Signal(data, sf=sf, axis=axis, time=time, xlabel=xlabel, ylabel=ylabel, title=title, grid_titles=gtitles, grid_font_size=gfz, grid_lw=glw).show()
Total running time of the script: ( 0 minutes 0.000 seconds)