--- title: "Flipping scatterbar oreintations and positions" author: "Dee Velazquez and Jean Fan" date: "`r Sys.Date()`" output: rmarkdown::html_vignette vignette: > %\VignetteIndexEntry{Flipping scatterbar oreintations and positions} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} --- # Flipping scatterbar oreintations and positions This tutorial demonstrates how to change the orientation of a scatterbar plot using the `scatterbar` package. Specifically, we will flip the x and y coordinates to create an alternative view of the data. ```{r, include = FALSE} knitr::opts_chunk$set( collapse = TRUE, comment = "#>" ) ``` ```{r setup} # Load packages and example adult mouse brain dataset library(scatterbar) library(ggplot2) data("adult_mouse_brain_ffpe") ``` Here, we flip the x and y coordinates in the `pos` data frame to change the orientation of the whole scatterbar plot, such that the adult mouse brain is now displayed horizontally. ```{r flipped plot} # Flip the x and y columns of the position data flipped_pos <- adult_mouse_brain_ffpe$pos[, c(2,1)] # Rename the columns to ensure the position data has the correct column names colnames(flipped_pos) <- c('x','y') # Create the scatterbar plot with the flipped position data start.time <- Sys.time() scatterbar::scatterbar(adult_mouse_brain_ffpe$prop, flipped_pos, padding_x = 0.3, padding_y = 0.3, size_x = 220, size_y = 220, legend_title = "Cell Types") + coord_fixed() end.time <- Sys.time() print(end.time - start.time) ``` We can also change the orientation of the stacked bar charts themselves and how they are displayed. With `coord_flip()`, the adult mouse brain is now displayed vertically once more, but the stacked bar charts are now displayed horizontally. ```{r flipped orientation} # Create the scatterbar plot with the flipped scatterbar oreintation start.time <- Sys.time() scatterbar::scatterbar(adult_mouse_brain_ffpe$prop, flipped_pos, padding_x = 0.3, padding_y = 0.3, size_x = 220, size_y = 220, legend_title = "Cell Types") + coord_fixed() + coord_flip() end.time <- Sys.time() print(end.time - start.time) ```