Graphs the output of a dimensional reduction technique on a 2D scatter plot where each point is a cell and it's positioned based on the cell embeddings determined by the reduction technique. By default, cells are colored by their identity class (can be changed with the parameter).

  dims = c(1, 2),
  cells = NULL,
  cols = NULL,
  pt.size = NULL,
  reduction = NULL, = NULL, = NULL, = NULL,
  order = NULL,
  shuffle = FALSE,
  seed = 1,
  label = FALSE,
  label.size = 4,
  label.color = "black", = FALSE,
  repel = FALSE,
  cells.highlight = NULL,
  cols.highlight = "#DE2D26",
  sizes.highlight = 1,
  na.value = "grey50",
  ncol = NULL,
  combine = TRUE,
  raster = NULL

PCAPlot(object, ...)

TSNEPlot(object, ...)

UMAPPlot(object, ...)



Seurat object


Dimensions to plot, must be a two-length numeric vector specifying x- and y-dimensions


Vector of cells to plot (default is all cells)


Vector of colors, each color corresponds to an identity class. This may also be a single character or numeric value corresponding to a palette as specified by By default, ggplot2 assigns colors. We also include a number of palettes from the pals package. See DiscretePalette for details.


Adjust point size for plotting


Which dimensionality reduction to use. If not specified, first searches for umap, then tsne, then pca

Name of one or more metadata columns to group (color) cells by (for example, orig.ident); pass 'ident' to group by identity class

Name of a metadata column to split plot by; see FetchData for more details

If NULL, all points are circles (default). You can specify any cell attribute (that can be pulled with FetchData) allowing for both different colors and different shapes on cells. Only applicable if raster = FALSE.


Specify the order of plotting for the idents. This can be useful for crowded plots if points of interest are being buried. Provide either a full list of valid idents or a subset to be plotted last (on top)


Whether to randomly shuffle the order of points. This can be useful for crowded plots if points of interest are being buried. (default is FALSE)


Sets the seed if randomly shuffling the order of points.


Whether to label the clusters


Sets size of labels


Sets the color of the label text

Whether to put a box around the label text (geom_text vs geom_label)


Repel labels


A list of character or numeric vectors of cells to highlight. If only one group of cells desired, can simply pass a vector instead of a list. If set, colors selected cells to the color(s) in cols.highlight and other cells black (white if dark.theme = TRUE); will also resize to the size(s) passed to sizes.highlight


A vector of colors to highlight the cells as; will repeat to the length groups in cells.highlight


Size of highlighted cells; will repeat to the length groups in cells.highlight


Color value for NA points when using custom scale


Number of columns for display when combining plots


Combine plots into a single patchworked ggplot object. If FALSE, return a list of ggplot objects


Convert points to raster format, default is NULL which automatically rasterizes if plotting more than 100,000 cells


Extra parameters passed to DimPlot


A patchworked ggplot object if combine = TRUE; otherwise, a list of ggplot objects


For the old do.hover and do.identify functionality, please see HoverLocator and CellSelector, respectively.

See also


data("pbmc_small") DimPlot(object = pbmc_small)
DimPlot(object = pbmc_small, = 'ident')