scVeloR provides a comprehensive suite of visualization tools for exploring RNA velocity results. This gallery demonstrates the various plot types available and their customization options.
The velocity embedding plot shows velocity arrows overlaid on the low-dimensional embedding (UMAP/tSNE).
Velocity embedding plot showing directional flow of cells.
Streamlines provide a cleaner visualization of the overall velocity field.
Streamline plot showing smooth velocity flow patterns.
The grid plot displays averaged velocities on a regular grid.
Grid plot showing averaged velocity vectors.
Phase portraits show the relationship between spliced and unspliced mRNA for individual genes.
Phase portrait showing spliced vs unspliced mRNA relationship.
Cells colored by inferred latent time.
Velocity confidence scores indicating reliability of estimates.
library(patchwork)
# Create multiple plots
p1 <- plot_velocity(seurat_obj, embedding = "umap",
color_by = "clusters", title = "Velocity")
p2 <- plot_velocity_stream(seurat_obj, embedding = "umap",
title = "Streamlines")
p3 <- plot_phase(seurat_obj, gene = "Sox2",
show_fit = TRUE, title = "Sox2 Phase")
# Combine
(p1 | p2) / p3# Custom color palette for clusters
custom_colors <- c("#E41A1C", "#377EB8", "#4DAF4A", "#984EA3",
"#FF7F00", "#FFFF33", "#A65628", "#F781BF")
plot_velocity(seurat_obj,
embedding = "umap",
color_by = "clusters") +
ggplot2::scale_color_manual(values = custom_colors)
# Custom continuous color scale
plot_velocity(seurat_obj,
embedding = "umap",
color_by = "latent_time") +
ggplot2::scale_color_viridis_c(option = "magma")sessionInfo()
#> R version 4.6.0 (2026-04-24)
#> Platform: x86_64-pc-linux-gnu
#> Running under: Ubuntu 24.04.4 LTS
#>
#> Matrix products: default
#> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
#> LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.26.so; LAPACK version 3.12.0
#>
#> locale:
#> [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
#> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
#> [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
#> [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
#> [9] LC_ADDRESS=C LC_TELEPHONE=C
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
#>
#> time zone: Etc/UTC
#> tzcode source: system (glibc)
#>
#> attached base packages:
#> [1] stats graphics grDevices utils datasets methods base
#>
#> other attached packages:
#> [1] tidyr_1.3.2 gridExtra_2.3 ggplot2_4.0.3 rmarkdown_2.31
#>
#> loaded via a namespace (and not attached):
#> [1] gtable_0.3.6 jsonlite_2.0.0 dplyr_1.2.1 compiler_4.6.0
#> [5] tidyselect_1.2.1 jquerylib_0.1.4 scales_1.4.0 yaml_2.3.12
#> [9] fastmap_1.2.0 R6_2.6.1 labeling_0.4.3 generics_0.1.4
#> [13] knitr_1.51 tibble_3.3.1 maketools_1.3.2 bslib_0.11.0
#> [17] pillar_1.11.1 RColorBrewer_1.1-3 rlang_1.2.0 cachem_1.1.0
#> [21] xfun_0.57 sass_0.4.10 sys_3.4.3 S7_0.2.2
#> [25] otel_0.2.0 viridisLite_0.4.3 cli_3.6.6 withr_3.0.2
#> [29] magrittr_2.0.5 digest_0.6.39 grid_4.6.0 lifecycle_1.0.5
#> [33] vctrs_0.7.3 evaluate_1.0.5 glue_1.8.1 farver_2.1.2
#> [37] buildtools_1.0.0 purrr_1.2.2 tools_4.6.0 pkgconfig_2.0.3
#> [41] htmltools_0.5.9