jokergoo / spiralize

Visualize data on spirals
https://jokergoo.github.io/spiralize/
Other
147 stars 13 forks source link

Visualize Data on Spirals

R-CMD-check CRAN CRAN

Features

The package spiralize visualizes data along an Archimedean spiral. It has two major advantages for visualization:

  1. It is able to visualize data with very long axis with high resolution.
  2. It is efficient for time series data to reveal periodic patterns.

Documentation

https://jokergoo.github.io/spiralize/

Citation

Zuguang Gu, et al., spiralize: an R package for Visualizing Data on Spirals, Bioinformatics, 2021. https://doi.org/10.1093/bioinformatics/btab778

Install

The package is available on CRAN and can be installed by:

install.packages("spiralize")

If you want the latest version, install it directly from GitHub:

library(devtools)
install_github("jokergoo/spiralize")

Usage

It includes three steps:

  1. initialize the spiral,
  2. add a track,
  3. add graphics to the track.

Step 2 and 3 can be applied multiple times to allow multiple-track visualization along the spiral.

The code for making spiral plot looks likes follows:

library(spiralize)
spiral_initialize(...)
spiral_track(...)
spiral_points(...)
...

Graphics

Complex plots are baiscally constructed from simple graphics. Here there are following low-level graphics functions:

Particularlly, horizon chart is very suitable to put on the spiral, thus there is one function for this:

Spiral plot can also visualize dendrograms with large number of leaves, thus there are following two functions:

Examples

  1. Difference of ggplot2 daily downloads to the mean of the current year (2015-2021). Each loop contains 52 weeks so that same weeks in different years locate at the same angle in the polar coordinates.

  1. A phylogenetic life tree with 50645 species.

  1. The spiral COVID-19 Shiny app

License

MIT @ Zuguang Gu