pybop.plot.backends.base#

Classes#

PlotBackend

Abstract base class defining a plotting backend interface.

Module Contents#

class pybop.plot.backends.base.PlotBackend[source]#

Bases: abc.ABC

Abstract base class defining a plotting backend interface.

Concrete implementations provide plotting functionality for a specific visualization library (e.g. Plotly, Matplotlib) while exposing a common API to the rest of the application.

Methods in this interface are responsible for creating figures, adding traces and annotations, generating specialised plot types, and rendering results.

abstractmethod colorbar(fig, data, colorscale='viridis', label=None)[source]#

Add a colour bar representing a colour scale.

Parameters:
  • fig (object) – Target figure.

  • data (array-like) – Data used for colour scaling.

  • colorscale (str, optional) – Colour scale name.

  • label (str, optional) – Colour bar label.

abstractmethod contour_plot(x, y, z, fig, ax=None, colorscale='viridis')[source]#

Create a contour plot.

Parameters:
  • x (array-like) – Coordinate values.

  • y (array-like) – Coordinate values.

  • z (array-like) – Surface values.

  • colorscale (str, optional) – Colour scale name.

  • fig (object) – Target figure.

  • ax (object, optional) – Target subplot axis.

Returns:

Backend-specific contour trace or figure.

Return type:

object

abstractmethod create_figure(title: str = None, xaxis_title: str = None, yaxis_title: str = None, traces: list = None, style: dict = None)[source]#

Create and return a new figure.

Parameters:
  • title (str, optional) – Figure title.

  • xaxis_title (str, optional) – X-axis label.

  • yaxis_title (str, optional) – Y-axis label.

  • traces (list, optional) – Initial traces to add to the figure.

  • style (dict, optional) – Backend-specific styling options.

Returns:

Backend-specific figure object.

Return type:

object

abstractmethod fill_between(x, y_upper, y_lower, color)[source]#

Create a filled region between upper and lower bounds.

Parameters:
  • x (array-like) – X-axis values.

  • y_upper (array-like) – Upper boundary values.

  • y_lower (array-like) – Lower boundary values.

  • color (str) – Fill colour.

abstractmethod heatmap(x, y, z, colorscale='viridis')[source]#

Create a heatmap.

Parameters:
  • x (array-like) – Coordinate values.

  • y (array-like) – Coordinate values.

  • z (array-like) – Heatmap values.

  • colorscale (str, optional) – Colour scale name.

Returns:

Backend-specific heatmap trace or figure.

Return type:

object

abstractmethod histogram_plot(x, name, style=None)[source]#

Create a histogram.

Parameters:
  • x (array-like) – Data to bin.

  • name (str) – Histogram label.

  • style (dict, optional) – Histogram styling options.

abstractmethod legend(fig, ax=None, style: dict = None)[source]#

Configure or display a legend for a figure.

Parameters:
  • fig (object) – Figure object.

  • style (dict, optional) – Legend styling options.

  • ax (object, optional) – Subplot axis to apply the legend to (if applicable).

abstractmethod line(x=None, y=None, label=None, style=None)[source]#

Create a line plot trace.

Parameters:
  • x (array-like, optional) – Coordinates of the line.

  • y (array-like, optional) – Coordinates of the line.

  • label (str, optional) – Trace label.

  • style (dict, optional) – Line styling options.

Returns:

Backend-specific line trace.

Return type:

object

abstractmethod make_subplots(num_rows: int, num_cols: int, num_plots: int, title=None, style=None)[source]#

Create a figure containing multiple subplot axes.

Parameters:
  • num_rows (int) – Number of rows in the subplot grid.

  • num_cols (int) – Number of columns in the subplot grid.

  • num_plots (int) – Total number of subplots to create.

  • title (str, optional) – Figure title.

  • style (dict, optional) – Backend-specific styling options.

Returns:

  • fig (object) – Backend-specific figure object.

  • axes (list) – List of subplot axes.

parse_input_axes(figures, axes, num_plots=None, allow_single_axis=True)[source]#

Parse and validate input figures and axes for plotting.

Parameters:
  • figures (object or list) – Figure(s) to plot on.

  • axes (object or list) – Axis/axes to plot on.

  • num_plots (int, optional) – Expected number of axes for the plot.

  • allow_single_axis (bool, optional) – Whether to allow a single axis for multiple plots.

Returns:

  • figures (list) – List of figure objects.

  • axes (list) – List of axis objects.

  • create_figure (bool) – Whether a new figure should be created.

  • single_axis (bool) – Whether a single axis is being used for multiple plots.

abstractmethod plot_trace(traces: dict | list[dict], fig, ax=None, color_cycle=None)[source]#

Add one or more traces to a figure or subplot.

Parameters:
  • traces (dict or list[dict]) – Trace definitions to plot.

  • fig (object) – Target figure.

  • ax (object, optional) – Target subplot axis.

  • color_cycle (iterable, optional) – Sequence of colours used when plotting multiple traces.

abstractmethod sample_color_scale(data, scale='viridis', d_min=None, d_max=None)[source]#

Map data values onto a colour scale.

Parameters:
  • data (array-like) – Values to colour-map.

  • scale (str, optional) – Colour scale name.

  • d_min (float, optional) – Lower bound for normalisation.

  • d_max (float, optional) – Upper bound for normalisation.

Returns:

Colours corresponding to the supplied data.

Return type:

array-like

abstractmethod scatter(x, y, colors, labels=None, colorscale='Greys')[source]#

Create a scatter plot.

Parameters:
  • x (array-like) – Point coordinates.

  • y (array-like) – Point coordinates.

  • colors (array-like) – Values or colours associated with each point.

  • labels (array-like, optional) – Point labels.

  • colorscale (str, optional) – Colour scale name.

abstractmethod show_figure(fig)[source]#

Render or display a figure.

Parameters:

fig (object) – Figure to display.

abstractmethod show_table(header, values, title)[source]#

Display tabular data.

Parameters:
  • header (list) – Column headers.

  • values (list) – Table contents.

  • title (str) – Table title.

abstractmethod update_axes_ranges(fig, ax, xaxis_range, yaxis_range)[source]#

Update the ranges of the axes in the provided figure.

Parameters:
  • fig (Figure) – Figure containing the axes to update.

  • ax (tuple) – Subplot location.

  • xaxis_range (tuple) – Range for the x-axis.

  • yaxis_range (tuple) – Range for the y-axis.

abstractmethod update_axes_titles(figs, axes, xaxis_titles, yaxis_titles)[source]#

Update the titles of the axes in the provided figures.

Parameters:
  • figures (list[Figure]) – List of figures containing the axes to update.

  • axes (list[tuple]) – List of subplot locations.

  • xaxis_titles (list[str]) – List of titles for the X-axes.

  • yaxis_titles (list[str]) – List of titles for the Y-axes.

  • max_width (int, optional) – Maximum width for the axis titles before wrapping. Default is 40 characters.

abstractmethod update_plot_titles(figs, axes, titles, pad)[source]#

Update the titles of the subplots in the provided figures.

Parameters:
  • figures (list[Figure]) – List of figures containing the subplots to update.

  • axes (list[tuple]) – List of subplot locations.

  • titles (list[str]) – List of titles for the subplots.

  • max_text_width (int, optional) – Maximum width for the subplot titles before wrapping. Default is 40 characters.

  • pad (int, optional) – Padding between the title and the subplot. Default is 0.

abstractmethod vline(fig, x, style=None)[source]#

Add a vertical reference line to a figure.

Parameters:
  • fig (object) – Target figure.

  • x (float) – X-coordinate of the line.

  • style (dict, optional) – Line styling options.

property name#

Return the name of the backend.

Returns:

Name of the backend.

Return type:

str