scanpy.pl.StackedViolin

class scanpy.pl.StackedViolin(adata, var_names, groupby, use_raw=None, log=False, num_categories=7, categories_order=None, title=None, figsize=None, gene_symbols=None, var_group_positions=None, var_group_labels=None, var_group_rotation=None, layer=None, standard_scale=None, ax=None, vmin=None, vmax=None, vcenter=None, norm=None, **kwds)

Stacked violin plots.

Makes a compact image composed of individual violin plots (from violinplot()) stacked on top of each other. Useful to visualize gene expression per cluster.

Wraps seaborn.violinplot() for AnnData.

Parameters
adata : AnnDataAnnData

Annotated data matrix.

var_names : str | Sequence[str] | MappingUnion[str, Sequence[str], Mapping[str, Union[str, Sequence[str]]]]

var_names should be a valid subset of adata.var_names. If var_names is a mapping, then the key is used as label to group the values (see var_group_labels). The mapping values should be sequences of valid adata.var_names. In this case either coloring or ‘brackets’ are used for the grouping of var names depending on the plot. When var_names is a mapping, then the var_group_labels and var_group_positions are set.

groupby : str | Sequence[str]Union[str, Sequence[str]]

The key of the observation grouping to consider.

use_raw : bool | NoneOptional[bool] (default: None)

Use raw attribute of adata if present.

log : boolbool (default: False)

Plot on logarithmic axis.

num_categories : intint (default: 7)

Only used if groupby observation is not categorical. This value determines the number of groups into which the groupby observation should be subdivided.

categories_order : Sequence[str] | NoneOptional[Sequence[str]] (default: None)

Order in which to show the categories. Note: add_dendrogram or add_totals can change the categories order.

figsize : Tuple[float, float] | NoneOptional[Tuple[float, float]] (default: None)

Figure size when multi_panel=True. Otherwise the rcParam['figure.figsize] value is used. Format is (width, height)

dendrogram

If True or a valid dendrogram key, a dendrogram based on the hierarchical clustering between the groupby categories is added. The dendrogram information is computed using scanpy.tl.dendrogram(). If tl.dendrogram has not been called previously the function is called with default parameters.

gene_symbols : str | NoneOptional[str] (default: None)

Column name in .var DataFrame that stores gene symbols. By default var_names refer to the index column of the .var DataFrame. Setting this option allows alternative names to be used.

var_group_positions : Sequence[Tuple[int, int]] | NoneOptional[Sequence[Tuple[int, int]]] (default: None)

Use this parameter to highlight groups of var_names. This will draw a ‘bracket’ or a color block between the given start and end positions. If the parameter var_group_labels is set, the corresponding labels are added on top/left. E.g. var_group_positions=[(4,10)] will add a bracket between the fourth var_name and the tenth var_name. By giving more positions, more brackets/color blocks are drawn.

var_group_labels : Sequence[str] | NoneOptional[Sequence[str]] (default: None)

Labels for each of the var_group_positions that want to be highlighted.

var_group_rotation : float | NoneOptional[float] (default: None)

Label rotation degrees. By default, labels larger than 4 characters are rotated 90 degrees.

layer : str | NoneOptional[str] (default: None)

Name of the AnnData object layer that wants to be plotted. By default adata.raw.X is plotted. If use_raw=False is set, then adata.X is plotted. If layer is set to a valid layer name, then the layer is plotted. layer takes precedence over use_raw.

title : str | NoneOptional[str] (default: None)

Title for the figure

stripplot

Add a stripplot on top of the violin plot. See stripplot().

jitter

Add jitter to the stripplot (only when stripplot is True) See stripplot().

size

Size of the jitter points.

order

Order in which to show the categories. Note: if dendrogram=True the categories order will be given by the dendrogram and order will be ignored.

scale

The method used to scale the width of each violin. If ‘width’ (the default), each violin will have the same width. If ‘area’, each violin will have the same area. If ‘count’, a violin’s width corresponds to the number of observations.

row_palette

The row palette determines the colors to use for the stacked violins. The value should be a valid seaborn or matplotlib palette name (see color_palette()). Alternatively, a single color name or hex value can be passed, e.g. 'red' or '#cc33ff'.

standard_scale : {‘var’, ‘group’} | NoneOptional[Literal[‘var’, ‘group’]] (default: None)

Whether or not to standardize a dimension between 0 and 1, meaning for each variable or observation, subtract the minimum and divide each by its maximum.

swap_axes

By default, the x axis contains var_names (e.g. genes) and the y axis the groupby categories. By setting swap_axes then x are the groupby categories and y the var_names. When swapping axes var_group_positions are no longer used

kwds

Are passed to violinplot().

See also

stacked_violin()

simpler way to call StackedViolin but with less options.

violin()

to plot marker genes identified using rank_genes_groups()

Examples

>>> import scanpy as sc
>>> adata = sc.datasets.pbmc68k_reduced()
>>> markers = ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ']
>>> sc.pl.StackedViolin(adata, markers, groupby='bulk_labels', dendrogram=True)

Using var_names as dict:

>>> markers = {'T-cell': 'CD3D', 'B-cell': 'CD79A', 'myeloid': 'CST3'}
>>> sc.pl.StackedViolin(adata, markers, groupby='bulk_labels', dendrogram=True)

Attributes

DEFAULT_CATEGORY_HEIGHT

DEFAULT_CATEGORY_WIDTH

DEFAULT_COLORMAP

DEFAULT_COLOR_LEGEND_TITLE

DEFAULT_CUT

DEFAULT_INNER

DEFAULT_JITTER

DEFAULT_JITTER_SIZE

DEFAULT_LEGENDS_WIDTH

DEFAULT_LINE_WIDTH

DEFAULT_PLOT_X_PADDING

DEFAULT_PLOT_YTICKLABELS

DEFAULT_PLOT_Y_PADDING

DEFAULT_ROW_PALETTE

DEFAULT_SAVE_PREFIX

DEFAULT_SCALE

DEFAULT_STRIPPLOT

DEFAULT_WSPACE

DEFAULT_YLIM

MAX_NUM_CATEGORIES

MIN_FIGURE_HEIGHT

Methods

add_dendrogram([show, dendrogram_key, size])

Show dendrogram based on the hierarchical clustering between the groupby categories.

add_totals([show, sort, size, color])

Show barplot for the number of cells in in groupby category.

get_axes()

getdoc()

legend([show, title, width])

Configure legend parameters

make_figure()

Renders the image but does not call matplotlib.pyplot.show().

savefig(filename[, bbox_inches])

Save the current figure

show([return_axes])

Show the figure

style([cmap, stripplot, jitter, …])

Modifies plot visual parameters

swap_axes([swap_axes])

Plots a transposed image.