spm1d

spm1d.plot

This module contains a variety of plotting functions.

The following functions may be accessed as methods of spm1d SPM objects:

spm1d.plot SPM instance method SPM inference instance method
plot_spm plot  
plot_spm_design plot_design plot_design
plot_spmi   plot
plot_spmi_p_values   plot_p_values
plot_spmi_threshold_label   plot_threshold_label

All other plotting functions can only be accessed via spm1d.plot. These include:

  • plot_cloud
  • plot_errorcloud
  • plot_mean_sd

plot_errorcloud

spm1d.plot.plot_errorcloud(datum, sd, ax=None, x=None, facecolor='0.8', edgecolor='0.8', alpha=0.5, autoset_ylim=True)[source]

Plot an arbitrary error cloud surrounding a datum continuum.

Parameters:
  • datum — a 1D list or numpy array
  • sd — a 1D list or numpy array
  • ax — optional matplotlib.axes object
  • x — optional vector of x positions [default: np.arange(datum.size)]
  • facecolor — optional face color (for the SD cloud)
  • edgecolor — optional edge color (for the SD cloud)
  • alpha — optional face alpha value (for the SD cloud)
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
Returns:
  • a matplotlib.collections.PatchCollection object
Example:
>>> import numpy as np
>>> from matplotlib import pyplot
>>> a     = np.random.rand(50)
>>> b     = np.random.rand(50)
>>> spm1d.plot.plot_errorcloud(a, b)
>>> pyplot.xlim(0, 50)

plot_mean_sd

spm1d.plot.plot_mean_sd(Y, ax=None, x=None, lw=3, linecolor='k', linestyle='-', facecolor='0.8', edgecolor='0.8', alpha=0.5, label=None, autoset_ylim=True, roi=None)[source]

Plot mean continuum with standard deviation cloud.

Parameters:
  • Y — a (J x Q) numpy array
  • ax — optional matplotlib.axes object [default: matplotlib.pyplot.gca()]
  • x — optional vector of x positions [default: np.arange(Y.shape[1])]
  • lw — optional integer specify line width
  • linecolor — optional line color specifier (for the mean continuum)
  • linestyle — optional line style specifier (for the mean continuum)
  • facecolor — optional face color (for the SD cloud)
  • edgecolor — optional edge color (for the SD cloud)
  • alpha — optional face alpha value (for the SD cloud)
  • label — optional string to label the mean continuum (for use with matplotlib.pyplot.legend())
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
  • roi — optional region-of-interest vector (either boolean OR vector of (-1, 0, +1))
Returns:
  • None
Example:
>>> Y  = np.random.randn(10,101)
>>> spm1d.plot.plot_mean_sd(Y)

plot_spm

spm1d.plot.plot_spm(spm, ax=None, plot_ylabel=True, autoset_xlim=True, autoset_ylim=True, **kwdargs)[source]

Plot an spm1d SPM object as a line.

Parameters:
  • spm — an spm1d SPM object (not needed if using the SPM.plot method)
  • ax — optional matplotlib.axes object [default: matplotlib.pyplot.gca()]
  • plot_ylabel — if True, then an “SPM{t}” or “SPM{F}” label will automatically be added to the y axis
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
  • kwdards — any keyword argument accepted by matplotlib.pyplot.plot
Returns:
  • h — a matplotlib.lines.Line2D object
Example:
>>> t     = spm1d.stats.ttest(Y)
>>> line  = t.plot()   # equivalent to "line = spm1d.plot.plot_spm(t)"
>>> line.set_color('r')

plot_spmi

spm1d.plot.plot_spmi(spmi, ax=None, color='k', facecolor='0.8', lw=2, plot_thresh=True, plot_ylabel=True, thresh_color='k', autoset_xlim=True, autoset_ylim=True, label=None)[source]

Plot an spm1d SPM inference object as a line.

Parameters:
  • spmi — an spm1d SPM object
  • ax — optional matplotlib.axes object [default: matplotlib.pyplot.gca()]
  • color — optional line color specifier (for the raw SPM)
  • facecolor — optional face color (for suprathreshold clusters)
  • plot_thresh — if True, one or two horizontal threshold lines will be plotted (for one- or two-tailed inference)
  • plot_ylabel — if True, an “SPM{t}” or “SPM{F}” label will automatically be added to the y axis
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
Returns:
  • None
Example:
>>> t     = spm1d.stats.ttest(Y)
>>> ti    = t.inference(0.05)
>>> ti.plot()   # equivalent to "spm1d.plot.plot_spmi(ti)"

plot_spmi_p_values

spm1d.plot.plot_spmi_p_values(spmi, ax=None, size=8, offsets=None, offset_all_clusters=None, autoset_ylim=True)[source]

Plot an spm1d SPM inference object’s p values as text (if they exist).

Parameters:
  • spmi — an spm1d SPM inference object
  • ax — optional matplotlib.axes object [default: matplotlib.pyplot.gca()]
  • size — optional integer specifying font size
  • offsets — optional list of 2-tuples specifying (x,y) offsets with respect to cluster centroids
  • offset_all_clusters — optional 2-tuple specifying the (x,y) offset for all clusters, with respect to cluster centroids
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
Returns:
  • None
Example:
>>> t   = spm1d.stats.ttest(Y)
>>> ti  = t.inference(0.05)
>>> ti.plot()
>>> myoffsets = [(0,0), (0,0.2), (0,0.1)]  # if there are three clusters, there must be three 2-tuple offsets
>>> ti.plot_p_values(offsets=myoffsets) #equivalent to: "spm1d.plot.plot_p_values(ti, offsets=myoffsets)"

plot_spmi_threshold_label

spm1d.plot.plot_spmi_threshold_label(spmi, ax=None, lower=False, pos=None, autoset_ylim=True, **kwdargs)[source]

Plot an spm1d SPM inference object as a line.

Parameters:
  • spmi — an spm1d SPM inference object
  • ax — optional matplotlib.axes object [default: matplotlib.pyplot.gca()]
  • lower — if True, will plot the label on the lower threshold (if two-tailed inference has been conducted)
  • pos — optional 2-tuple specifying text object location; setting “pos” over-rides “lower”
  • autoset_ylim — if True (default), will set the y axis limits so that all text, line and patch objects are visible inside the axes
  • kwdards — any keyword argument accepted by matplotlib.pyplot.text
Returns:
  • a matplotlib.text.Text object
Example:
>>> t     = spm1d.stats.ttest(Y)
>>> ti    = t.inference(0.05)
>>> ti.plot_threshold_label(pos=(50,3.0))   # equivalent to "spm1d.plot.plot_spmi_threshold_label(ti, pos=(50,3.0))"