On my merged seurat object of 6 samples, when I use the split.by function in tandem with the Dimplot/UMAP plot, all six samples are displayed in series along a commonly labeled 'UMAP_1' x-axis in an order of (these are arbitrary for simplicity, here) Z, Y, X, C, B, A. Instead, I would like to specify these plots to output as a 2 row x 3 column arrangement ordered (1st Row) A, B, C and (2nd Row) X, Y, Z.

I'm assuming I could use something like: group_levels <- c("A", "B", "C", "X", "Y", "Z") to define the order I'd like, but I'm lost on how to get this to arrange the UMAP plots into a 2x3 grid I'd like.

Appreciate any help!

  • $\begingroup$ can you post the code or show with an example dataset (e.g pbmc_small in Seurat) ? I think it is a bit hard to follow in words what you need $\endgroup$
    – StupidWolf
    Jul 29, 2020 at 21:04
  • $\begingroup$ I am sure you would prefer an answer with working code, so i encourage you to do the same here $\endgroup$
    – StupidWolf
    Jul 29, 2020 at 21:05

1 Answer 1


how to get this to arrange the UMAP plots into a 2x3 grid

You can use the ncol parameter, which will set the number of columns in the "combined plot".

And for future reference, if you get the help page of the function you are using with ?DimPlot, you will see the .... This means that you can feed additional arguments to other functions that DimPlot() uses. Apparently, CombinePlots() is used under the hood and has an ncol parameter.

  • $\begingroup$ Thank you! ncol solved my problem! Here's the code I ended up using to get the columns and samples ordered, not sure if it was the most straightforward though, but works: object$orig.ident <- factor(x=object$orig.ident, levels = c("A", "B", "C", "X", "Y", "Z")) DimPlot(object, reduction = "umap", split.by = "orig.ident", ncol =3) $\endgroup$
    – astro_guy
    Jul 31, 2020 at 17:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.