From: Todd <tod...@gm...> - 2012-09-26 08:35:29
|
On Mon, Sep 24, 2012 at 3:33 PM, Todd <tod...@gm...> wrote: > I would like to add a new plot type to matplotlib. Of course I am willing > to implement it myself, but I want to confirm that it is acceptable and > iron out the implementation details and API first so there are no major > surprises when I submit it. > > I tentatively am calling the plot type an "EventRaster" plot (name > suggestions, along with any other suggestions, are welcome). The plot is > made up if horizontal rows of identical vertical lines and/or markers. > Each line or marker represents a discrete event, and each row represents a > single sequence of events (such as a trial). The x-axis position of the > line or marker identifies the location of the event by some measure. An > example of what such a plot often looks like is below. > > http://hebb.mit.edu/courses/9.29/2003/athena/dylanh/quad-rast.gif > > This sort of plot is used ubiquitously in neuroscience. It is used to > show the time of discrete neural (brain cell) events (called "spikes") over > time in repeated trials, and is generally called a spike raster, raster > plot, or raster graph. However, it can be used in any situation where you > are only concerned with the position of events but not their amplitude, > especially if you want to look for patterns in those events or look for > differences between multiple sequences of events. > > Plotting the timing of events is an obvious use case, such as photons > hitting photodetectors, radioactive decay events, arrival of patients to > hospitals, calls to hotlines, or car accidents in cities. However, the > events do not have to be relative to time. It could be position, for > example, such as tree rings along bore holes, road crossings along railroad > tracks, layers in sediment cores, or particular sequences along a DNA > strands. > > I'll cover possible implementation details in the next email if everyone > thinks this is a good idea. > So does anyone think this would be a useful plot type? If so I can explain how I plan to implement it and we can discuss changes or improvements to that. |