def _set_limits_matplotlib( axes: Axes, limits: types_limits, set_axes_equal: bool = False, ): """Set the limits of an axes object. Parameters ---------- axes : The axes object limits : Each tuple marks lower and upper boundary of the x, y and z axis. If only a single tuple is passed, the boundaries are used for all axis. If `None` is provided, the axis are adjusted to be of equal length. set_axes_equal : (matplotlib only) If `True`, all axes are adjusted to cover an equally large range of value. That doesn't mean, that the limits are identical """ if limits is not None: if isinstance(limits, Tuple): limits = [limits] if len(limits) == 1: limits = [limits[0] for _ in range(3)] axes.set_xlim(limits[0]) axes.set_ylim(limits[1]) axes.set_zlim(limits[2]) elif set_axes_equal: axes_equal(axes)
def show_rdm_panel( rdm: rsatoolbox.rdm.RDMs, ax: Axes = None, cmap: Union[str, matplotlib.colors.Colormap] = None, nanmask: npt.ArrayLike = None, rdm_descriptor: str = None, gridlines: npt.ArrayLike = None, vmin: float = None, vmax: float = None, ) -> matplotlib.image.AxesImage: """show_rdm_panel. Add RDM heatmap to the axis ax. Args: rdm (rsatoolbox.rdm.RDMs): RDMs object to be plotted (n_rdm must be 1). ax (matplotlib.axes._axes.Axes): Matplotlib axis handle. plt.gca() by default. cmap (Union[str, matplotlib.colors.Colormap]): colormap to be used (by plt.imshow internally). By default we use rdm_colormap. nanmask (npt.ArrayLike): boolean mask defining RDM elements to suppress (by default, the diagonals). rdm_descriptor (str): Key for rdm_descriptor to use as panel title, or str for direct labeling. gridlines (npt.ArrayLike): Set to add gridlines at these positions. vmin (float): Minimum intensity for colorbar mapping. matplotlib imshow argument. vmax (float): Maximum intensity for colorbar mapping. matplotlib imshow argument. Returns: matplotlib.image.AxesImage: Matplotlib handle. """ if rdm.n_rdm > 1: raise ValueError( "expected single rdm - use show_rdm for multi-panel figures") if ax is None: ax = plt.gca() if cmap is None: cmap = rdm_colormap() if nanmask is None: nanmask = np.eye(rdm.n_cond, dtype=bool) if not np.any(gridlines): gridlines = [] rdmat = rdm.get_matrices()[0, :, :] if np.any(nanmask): rdmat[nanmask] = np.nan image = ax.imshow(rdmat, cmap=cmap, vmin=vmin, vmax=vmax) ax.set_xlim(-0.5, rdm.n_cond - 0.5) ax.set_ylim(rdm.n_cond - 0.5, -0.5) ax.xaxis.set_ticks(gridlines) ax.yaxis.set_ticks(gridlines) ax.xaxis.set_ticklabels([]) ax.yaxis.set_ticklabels([]) ax.xaxis.set_ticks(np.arange(rdm.n_cond), minor=True) ax.yaxis.set_ticks(np.arange(rdm.n_cond), minor=True) # hide minor ticks by default ax.xaxis.set_tick_params(length=0, which="minor") ax.yaxis.set_tick_params(length=0, which="minor") if rdm_descriptor in rdm.rdm_descriptors: ax.set_title(rdm.rdm_descriptors[rdm_descriptor][0]) else: ax.set_title(rdm_descriptor) return image