generic

Functions that will be useful irrespective of backend.

heatmap_slicer(X, Y, heatmaps, slices='horizontal', heatmap_names=None, cmap=None, vmin=None, vmax=None, figsize=(18, 9), linecolor='k', labels=('X', 'Y'), interaction_type='move', fig=None)[source]

Compare horizontal and/or vertical slices across multiple arrays.

Parameters
  • X,Y (1D array)

  • heatmaps (array_like) – must be 2-D or 3-D. If 3-D the last two axes should be (X,Y)

  • slices ({‘horizontal’, ‘vertical’, ‘both’}) – Direction to draw slice on heatmap. both will draw horizontal and vertical traces on the same plot, while both_separate will make a line plot for each.

  • heatmap_names ((String, String, …)) – An iterable with the names of the heatmaps. If provided it must have as many names as there are heatmaps

  • cmap (str or Colormap, optional) – A Colormap instance or registered colormap name.

  • vmin, vmax (float, optional) – The colorbar range. If None, suitable min/max values are automatically chosen by the Normalize instance.

  • figsize (tuple of number, default: (18, 9)) – The size of the created figure. Ignored if fig is not None.

  • linecolor (colorlike, default: ‘k’) – The color of the cursor showing the slices. Must be a valid Matplotlib linecolor.

  • labels ((string, string), default: (“X”, “Y”)) – The labels for the x and y axes.

  • interaction_type (str) – Update on mouse movement or mouse click. Options are {‘move’,’click’}

  • fig (matplotlib figure, optional) – The figure to use for the heatmap_slicer. Useful when embedding into a gui. If you are embedding into a gui make sure you set up the gui canvas first and then pass the figure to this function

Returns

  • fig (matplotlib.Figure.figure)

  • ax (tuple of matplotlib.axes.Axes)

hyperslicer(arr, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, vmin_vmax=None, origin=None, extent=None, autoscale_cmap=True, filternorm=True, filterrad=4.0, resample=None, url=None, ax=None, slider_formats=None, title=None, force_ipywidgets=False, play_buttons=False, is_color_image=False, controls=None, display_controls=True, **kwargs)[source]

View slices from a hyperstack of images selected by sliders. Also accepts Xarray.DataArrays in which case the axes names and coordinates will be inferred from the xarray dims and coords.

Parameters
  • arr (arraylike or xarray) – Hyperstack of images. The last 2 or 3 dimensions will be treated as individiual images. If an xarray.DataArray then the dimensions will be automatically inferred.

  • cmap (str or Colormap) – The Colormap instance or registered colormap name used to map scalar data to colors. This parameter is ignored for RGB(A) data. forwarded to matplotlib

  • norm (Normalize, optional) – The Normalize instance used to scale scalar data to the [0, 1] range before mapping to colors using cmap. By default, a linear scaling mapping the lowest value to 0 and the highest to 1 is used. This parameter is ignored for RGB(A) data. forwarded to matplotlib

  • autoscale_cmap (bool) – If True rescale the colormap for every function update. Will not update if vmin and vmax are provided or if the returned image is RGB(A) like. forwarded to matplotlib

  • aspect ({‘equal’, ‘auto’} or float) – forwarded to matplotlib interpolation : str forwarded to matplotlib

  • ax (matplotlib axis, optional) – if None a new figure and axis will be created

  • slider_formats (None, string, or dict) – If None a default value of decimal points will be used. Uses the new {} style formatting

  • title (None or string) – If a string then you can have it update automatically using string formatting of the names of the parameters. i.e. to include the current value of tau: title=’the value of tau is: {tau:.2f}’

  • force_ipywidgets (boolean) – If True ipywidgets will always be used, even if not using the ipympl backend. If False the function will try to detect if it is ok to use ipywidgets If ipywidgets are not used the function will fall back on matplotlib widgets

  • play_buttons (bool or str or dict, optional) – Whether to attach an ipywidgets.Play widget to any sliders that get created. If a boolean it will apply to all kwargs, if a dictionary you choose which sliders you want to attach play buttons too.

    • None: no sliders

    • True: sliders on the lft

    • False: no sliders

    • ‘left’: sliders on the left

    • ‘right’: sliders on the right

  • is_color_image (boolean) – If True, will treat the last 3 dimensions as comprising a color images and will only set up sliders for the first arr.ndim - 3 dimensions.

  • controls (mpl_interactions.controller.Controls) – An existing controls object if you want to tie multiple plot elements to the same set of controls

  • display_controls (boolean) – Whether the controls should display on creation. Ignored if controls is specified.

Returns

controls

class image_segmenter(img, nclasses=1, mask=None, mask_colors=None, mask_alpha=0.75, lineprops=None, lasso_mousebutton='left', pan_mousebutton='middle', ax=None, figsize=(10, 10), **kwargs)[source]

Bases: object

Manually segment an image with the lasso selector.

class panhandler(fig, button=3)[source]

Bases: object

Enable panning a plot with any mouse button.

button determines which button will be used (default right click) Left: 1 Middle: 2 Right: 3

press(event)[source]
release(event)[source]
zoom_factory(ax, base_scale=1.1)[source]

Add ability to zoom with the scroll wheel.

Parameters
  • ax (matplotlib axes object) – axis on which to implement scroll to zoom

  • base_scale (float) – how much zoom on each tick of scroll wheel

Returns

disconnect_zoom (function) – call this to disconnect the scroll listener