hv_anndata.plotting.scanpy.matrixplot

hv_anndata.plotting.scanpy.matrixplot(adata, /, group_by, *, func='mean', data=A.X, add_totals=False)

Heatmap with totals per column.

Parameters:
adata AnnData

The AnnData object.

group_by AdDim

The groupby expression.

func Literal['count_nonzero', 'mean', 'sum', 'var', 'median'], default: 'mean'

The aggregation function.

data LayerAcc | MultiAcc, default: A.X

The data to plot.

add_totals bool, default: False

Whether to add totals per group.

Return type:

HeatMap | AdjointLayout

Returns:

A heatmap. If add_totals is True, a AdjointLayout is returned containing the heatmap and a Bars object.

Examples

import hv_anndata.plotting.scanpy as hv_sc
from hv_anndata import data, register, A

register()

adata = data.pbmc68k_processed()
markers = ["C1QA", "PSAP", "CD79A", "CD79B", "CST3", "LYZ"]
hv_sc.matrixplot(
    adata[:, markers], A.obs["bulk_labels"], data=A.layers["counts"],
    add_totals=True
)
/home/docs/.local/share/hatch/env/virtual/hv-anndata/STk7F69l/docs/lib/python3.13/site-packages/numba/cpython/hashing.py:477: UserWarning: FNV hashing is not implemented in Numba. See PEP 456 https://www.python.org/dev/peps/pep-0456/ for rationale over not using FNV. Numba will continue to work, but hashes for built in types will be computed using siphash24. This will permit e.g. dictionaries to continue to behave as expected, however anything relying on the value of the hash opposed to hash as a derived property is likely to not work as expected.
  warnings.warn(msg)
import hv_anndata.plotting.scanpy as hv_sc
from hv_anndata import data, register, A

register()

adata = data.pbmc68k_processed()
markers = ["C1QA", "PSAP", "CD79A", "CD79B", "CST3", "LYZ"]
hv_sc.matrixplot(
    adata[:, markers], A.obs["bulk_labels"], data=A.layers["counts"],
    add_totals=True
)
import hv_anndata.plotting.scanpy as hv_sc
from hv_anndata import data, register, A

register()

adata = data.pbmc68k_processed()
markers = ["C1QA", "PSAP", "CD79A", "CD79B", "CST3", "LYZ"]
hv_sc.matrixplot(
    adata[:, markers], A.obs["bulk_labels"], data=A.layers["counts"],
    add_totals=True
)