Skip to main content
`Ctrl`+`K`

# `ScatterView`: Plot 2D scatter data

A widget dedicated to display scatter plots

It is based on a `PlotWidget` with additional tools for scatter plots.

## `ScatterView` class

class ScatterView(parent=None, backend=None)

  Bases: `QMainWindow`

  Main window with a PlotWidget and tools specific for scatter plots.

  Parameters:

    - parent – The parent of this widget

    - backend (Union[str,BackendBase]) – The backend to use for the plot (default: matplotlib). See `PlotWidget` for the list of supported backend.

  getPlotWidget()

    Returns the `PlotWidget` this window is based on.

    Return type:

      PlotWidget

  getPositionInfoWidget()

    Returns the widget display mouse coordinates information.

    Return type:

      PositionInfo

  getMaskToolsWidget()

    Returns the widget controlling mask drawing

    Return type:

      ScatterMaskToolsWidget

  getInteractiveModeToolBar()

    Returns QToolBar controlling interactive mode.

    Return type:

      InteractiveModeToolBar

  getScatterToolBar()

    Returns QToolBar providing scatter plot tools.

    Return type:

      ScatterToolBar

  getScatterProfileToolBar()

    Returns QToolBar providing scatter profile tools.

    Return type:

      ScatterProfileToolBar

  getOutputToolBar()

    Returns QToolBar containing save, copy and print actions

    Return type:

      OutputToolBar

  setColormap(colormap=None)

    Set the colormap for the displayed scatter and the default plot colormap.

    Parameters:

      colormap (Colormap) – The description of the colormap.

  getColormap()

    Return the colormap object in use.

    Returns:

      Colormap currently in use

    Return type:

      Colormap

  setData(x, y, value, xerror=None, yerror=None, alpha=None, copy=True)

    Set the data of the scatter plot.

    To reset the scatter plot, set x, y and value to None.

    Parameters:

      - x (Union[numpy.ndarray,None]) – X coordinates.

      - y (Union[numpy.ndarray,None]) – Y coordinates.

      - value (Union[numpy.ndarray,None]) – The data corresponding to the value of the data points.

      - xerror (A float, or a numpy.ndarray of float32.) – Values with the uncertainties on the x values. If it is an array, it can either be a 1D array of same length as the data or a 2D array with 2 rows of same length as the data: row 0 for positive errors, row 1 for negative errors.

      - yerror (A float, or a numpy.ndarray of float32. See xerror.) – Values with the uncertainties on the y values

      - alpha (A float, or a numpy.ndarray of float32) – Values with the transparency (between 0 and 1)

      - copy (bool) – True make a copy of the data (default), False to use provided arrays.

  getData(*args, **kwargs)

    Returns the x, y coordinates and the value of the data points

    Parameters:

      - copy – True (Default) to get a copy, False to use internal representation (do not modify!)

      - displayed (bool) – True to only get curve points that are displayed in the plot. Default: False. Note: If plot has log scale, negative points are not displayed.

    Returns:

      (x, y, value, xerror, yerror)

    Return type:

      5-tuple of numpy.ndarray

  getScatterItem()

    Returns the plot item displaying the scatter data.

    This allows to set the style of the displayed scatter.

    Return type:

      Scatter

  getXAxis(*args, **kwargs)

    Returns the X axis

    Added in version 0.6.

    Return type:

      `items.Axis`

  getYAxis(*args, **kwargs)

    Returns an Y axis

    Added in version 0.6.

    Parameters:

      axis (str) – The Y axis to return (‘left’ or ‘right’).

    Return type:

      `items.Axis`

  setGraphTitle(*args, **kwargs)

    Set the plot main title.

    Parameters:

      title (str) – Main title of the plot (default: ‘’)

  getGraphTitle(*args, **kwargs)

    Return the plot main title as a str.

  resetZoom(*args, **kwargs)

    Reset the plot limits to the bounds of the data and redraw the plot.

    It automatically scale limits of axes that are in autoscale mode (see `getXAxis()`, `getYAxis()` and `Axis.setAutoScale()`). It keeps current limits on axes that are not in autoscale mode.

    Extra margins can be added around the data inside the plot area (see `setDataMargins()`). Margins are given as one ratio of the data range per limit of the data (xMin, xMax, yMin and yMax limits). For log scale, extra margins are applied in log10 of the data.

    Parameters:

      dataMargins (A 4-tuple of float as (xMin, xMax, yMin, yMax).) – Ratios of margins to add around the data inside the plot area for each side (default: no margins).

  getSelectionMask(*args, **kwargs)

    Get the current mask as a numpy array.

    Parameters:

      copy (bool) – True (default) to get a copy of the mask. If False, the returned array MUST not be modified.

    Returns:

      The mask (as an array of uint8) with dimension of the ‘active’ plot item. If there is no active image or scatter, it returns None.

    Return type:

      Union[numpy.ndarray,None]

  setSelectionMask(*args, **kwargs)

    Set the mask to a new array.

    Parameters:

      - mask (numpy.ndarray of uint8, C-contiguous. Array of other types are converted.) – The array to use for the mask or None to reset the mask.

      - copy (bool) – True (the default) to copy the array, False to use it as is if possible.

    Returns:

      None if failed, shape of mask as 1-tuple if successful. The mask can be cropped or padded to fit active scatter, the returned shape is that of the scatter data.