pybop.plot.backends.base#
Classes#
Abstract base class defining a plotting backend interface. |
Module Contents#
- class pybop.plot.backends.base.PlotBackend[source]#
Bases:
abc.ABCAbstract 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