The data are synthetic. 50 neurons, 120 trials (40 each of stimuli
A, B and C, in random order). Every neuron's response amplitude to each
stimulus is drawn from a Gaussian whose mean depends on the stimulus
(A ≈ 14, B ≈ 6, C ≈ 5
spikes/s), so A is bigger on average while individual neurons vary a
lot and some are suppressed. The response time course is a gamma-shaped
kernel — fast rise, slower decay, peak at ~42 ms, essentially over
within 200 ms. Spikes are an inhomogeneous Poisson process.
The voltage is simulated in your browser , on demand, from the spike
times of whichever trial you clicked: white noise on 64 channels at
20 µm pitch, plus one waveform per spike — a negative 2-D
Gaussian in time × depth followed 0.65 ms later by a
wider-in-time positive one. So the coloured dots are ground truth , not
the output of a spike sorter: every dot sits exactly on the waveform that
produced it. Scroll to zoom the voltage panel; press d to hide the
dots.
The whole page is one self-contained HTML file — no server, no
libraries. Python versions of the same demo (a standalone
drilldown.py and a Jupyter notebook) live in the
plotting_drilldown_demo folder of the
Good Analysis
Practice repository.