gridcells.plotting.fields
- grid field related plotting¶
The fields
module contains routines to create
matplotlib plots of spatial firing fields and similar commonly used structures.
How to plot¶
The plotting is currently realized as a subclass of matplotlib.axes.Axes
and is used via a projection="gridcells_arena"
keyword argument. Since a
custom Axes
class is not part of standard matplotlib, before using the
projection
, you have to first register the plotting class with matplotlib
by importing the plotting module:
import matplotlib.pyplot as plt
from gridcells.plotting import fields
from gridcells.core import SquareArena, Pair2D
Next, create an Axes object that you can plot to:
fig = plt.figure()
arena = SquareArena(100., Pair2D(1., 1.))
ax = fig.add_subplot(111, projection="gridcells_arena", arena=arena)
The add_subplot
method takes a keyword argument
projection="gridcells_arena"
that specifies the type of Axes to use. Here,
we also have to specify the arena
parameter in the form of an
Arena
instance. In our case we have created a
square arena with size 100x100 and a discretisation of 1x1 (in arbitrary
units).
Next, for illustration purposes, we create a random spatial rate map with size
compatible with the current arena, and plot to the axes, by calling
spatial_rate_map()
:
sz = arena.getDiscretisation()
rate_map = np.random.rand(len(sz.x), len(sz.y))
ax.spatial_rate_map(rate_map)
Custom grid cell plotting Axes¶
GridArenaAxes (*args, **kwargs) |
A custom matplotlib Axes that allows to plot figures in the shape of arenas. |
-
class
gridcells.plotting.fields.
GridArenaAxes
(*args, **kwargs)[source]¶ Bases:
Axes
A custom matplotlib Axes that allows to plot figures in the shape of arenas.
Methods:
fft2
(rate_map[, scalebar, scaletext, fftn, ...])Plot a 2D Fourier transform (power) of a spatial rate map. spatial_rate_map
(rate_map[, scalebar, ...])Plot the spatial rate map in the specified arena. spikes
(spike_times, pos[, dotsize, ...])Plot spike positions. Create the axes.
Should not be used directly, but via the matplotlib
projection
keyword argument.Parameters: arena :
Arena
Are that will be used for plotting. This has to be specified as a keyword argument to matplotlib’s
Figure.add_subplot()
orFigure.add_axes()
.-
default_margin
= 0.0¶ Default margin in axis coordinates
-
fft2
(rate_map, scalebar=None, scaletext='$cm^{-1}$', fftn=None, subtractmean=True, **kwargs)[source]¶ Plot a 2D Fourier transform (power) of a spatial rate map.
Parameters: rate_map : np.ndarray
The rate map as 2D array. Rows determine the Y coordinate, columns the X coordinate. Masked items will be ignored.
scalebar : float, optional
The length of the scale bar that will be plotted as horizontal line. Must be in data units.
scaletext : str, optional
Text after the scale bar number, i.e. units.
fftn : int, optional
Size of the array that the Fourier transform is actually computed from. If
None
it will bemax(rate_map.shape)
. Otherwise therate_map
will be padded with zeros.subtractmean : bool, optional
Whether to subtract the mean of the signal before computing the FFT. This will remove any constant component in the centre of the spectrogram.
kwargs : kwargs
Optional kwargs that will be passed to matplotlib’s pcolormesh.
-
name
= 'gridcells_arena'¶ Name of the class used to register with matplotlib
-
spatial_rate_map
(rate_map, scalebar=None, scaletext='cm', maxrate=True, g_score=None, maxrate_fs='xx-small', **kwargs)[source]¶ Plot the spatial rate map in the specified arena.
Parameters: rate_map : np.ndarray
The rate map as 2D array. Rows determine the Y coordinate, columns the X coordinate. Masked items will be ignored.
scalebar : float, optional
The length of the scale bar that will be plotted as horizontal line. Must be in data units.
scaletext : str, optional
Text after the scale bar number, i.e. units.
maxrate : bool, optional
Whether to print the max firing rate (top right corner)
g_score : float, optional
Grid score for this spatial rate map. If
None
, plot nothing.maxrate_fs : matplotlib font size identifier
Font size for maxrate.
kwargs : kwargs
Optional kwargs that will be passed to matplotlib’s pcolormesh.
-
spikes
(spike_times, pos, dotsize=5, scalebar=None, scaletext='cm', **kwargs)[source]¶ Plot spike positions.
Both positions and spikes must be aligned!
Parameters: spike_times : np.ndarray
Spike times to plot on top of the trajectories
pos : gridcells.Position2D
Positional data for the spike times.
dotsize : float
Size of spike dots.
scalebar : float, optional
The length of the scale bar that will be plotted as horizontal line. Must be in data units.
scaletext : str, optional
Text after the scale bar number, i.e. units.
kwargs : kwargs
Optional kwargs that will be passed to matplotlib’s plot functions (for the trajectories and spike dots).
-