# ribs.visualize.sliding_boundaries_archive_heatmap¶

- ribs.visualize.sliding_boundaries_archive_heatmap(
*archive*,*ax=None*,***,*transpose_measures=False*,*cmap='magma'*,*aspect='auto'*,*ms=None*,*boundary_lw=0*,*vmin=None*,*vmax=None*,*cbar='auto'*,*cbar_kwargs=None*)[source]¶ Plots heatmap of a

`SlidingBoundariesArchive`

with 2D measure space.Since the boundaries of

`ribs.archives.SlidingBoundariesArchive`

are dynamic, we plot the heatmap as a scatter plot, in which each marker is an elite and its color represents the objective value. Boundaries can optionally be drawn by setting`boundary_lw`

to a positive value.Examples

>>> import numpy as np >>> import matplotlib.pyplot as plt >>> from ribs.archives import SlidingBoundariesArchive >>> from ribs.visualize import sliding_boundaries_archive_heatmap >>> archive = SlidingBoundariesArchive(solution_dim=2, ... dims=[10, 20], ... ranges=[(-1, 1), (-1, 1)], ... seed=42) >>> # Populate the archive with the negative sphere function. >>> rng = np.random.default_rng(seed=10) >>> coords = np.clip(rng.standard_normal((1000, 2)), -1.5, 1.5) >>> archive.add(solution_batch=coords, ... objective_batch=-np.sum(coords**2, axis=1), ... measures_batch=coords) >>> # Plot heatmaps of the archive. >>> fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16,6)) >>> fig.suptitle("Negative sphere function") >>> sliding_boundaries_archive_heatmap(archive, ax=ax1, ... boundary_lw=0.5) >>> sliding_boundaries_archive_heatmap(archive, ax=ax2) >>> ax1.set_title("With boundaries") >>> ax2.set_title("Without boundaries") >>> ax1.set(xlabel='x coords', ylabel='y coords') >>> ax2.set(xlabel='x coords', ylabel='y coords') >>> plt.show()

- Parameters
**archive**(*SlidingBoundariesArchive*) – A 2D`SlidingBoundariesArchive`

.**ax**(*matplotlib.axes.Axes*) – Axes on which to plot the heatmap. If`None`

, the current axis will be used.**transpose_measures**(*bool*) – By default, the first measure in the archive will appear along the x-axis, and the second will be along the y-axis. To switch this behavior (i.e. to transpose the axes), set this to`True`

.**cmap**(*str**,**list**,**matplotlib.colors.Colormap*) – Colormap to use when plotting intensity. Either the name of a`Colormap`

, a list of RGB or RGBA colors (i.e. an \(N \times 3\) or \(N \times 4\) array), or a`Colormap`

object.**aspect**(*'auto'**,**'equal'**,**float*) – The aspect ratio of the heatmap (i.e. height/width). Defaults to`'auto'`

.`'equal'`

is the same as`aspect=1`

.**ms**(*float*) – Marker size for the solutions.**boundary_lw**(*float*) – Line width when plotting the boundaries. Set to`0`

to have no boundaries.**vmin**(*float*) – Minimum objective value to use in the plot. If`None`

, the minimum objective value in the archive is used.**vmax**(*float*) – Maximum objective value to use in the plot. If`None`

, the maximum objective value in the archive is used.**cbar**(*'auto'**,**None**,**matplotlib.axes.Axes*) – By default, this is set to`'auto'`

which displays the colorbar on the archive’s current`Axes`

. If`None`

, then colorbar is not displayed. If this is an`Axes`

, displays the colorbar on the specified Axes.**cbar_kwargs**(*dict*) – Additional kwargs to pass to`colorbar()`

.

- Raises
**ValueError**– The archive is not 2D.