Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jokergoo/circlize
Circular visualization in R
https://github.com/jokergoo/circlize
Last synced: 24 days ago
JSON representation
Circular visualization in R
- Host: GitHub
- URL: https://github.com/jokergoo/circlize
- Owner: jokergoo
- License: other
- Created: 2013-04-18T18:56:04.000Z (over 11 years ago)
- Default Branch: master
- Last Pushed: 2023-11-11T08:34:17.000Z (12 months ago)
- Last Synced: 2024-09-07T23:26:34.886Z (2 months ago)
- Language: R
- Homepage: http://jokergoo.github.io/circlize_book/book/
- Size: 110 MB
- Stars: 959
- Watchers: 27
- Forks: 141
- Open Issues: 57
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- jimsghstars - jokergoo/circlize - Circular visualization in R (R)
README
# circlize: circular visualization in R
[![R-CMD-check](https://github.com/jokergoo/circlize/workflows/R-CMD-check/badge.svg)](https://github.com/jokergoo/circlize/actions)
[![CRAN](https://www.r-pkg.org/badges/version/circlize)](https://cran.r-project.org/web/packages/circlize/index.html)
[![CRAN](https://cranlogs.r-pkg.org/badges/grand-total/circlize)](https://cran.r-project.org/web/packages/circlize/index.html)
[![Codecov test coverage](https://codecov.io/gh/jokergoo/circlize/branch/master/graph/badge.svg)](https://codecov.io/gh/jokergoo/circlize?branch=master)Circular layout is an efficient way for the visualization of huge
amounts of information. Here the circlize package provides an implementation
of circular layout generation in R as well as an enhancement of available
software. The flexibility of this package is based on the usage of low-level
graphics functions such that self-defined high-level graphics can be easily
implemented by users for specific purposes. Together with the seamless
connection between the powerful computational and visual environment in R,
circlize gives users more convenience and freedom to design figures for
better understanding complex patterns behind multi-dimensional data.## Citation
Zuguang Gu, et al., circlize Implements and enhances circular visualization in R. Bioinformatics (Oxford, England) 2014. [PubMed](https://www.ncbi.nlm.nih.gov/pubmed/24930139)
## Documentation
The full documentations are available at https://jokergoo.github.io/circlize_book/book/ and the online website is at https://jokergoo.github.io/circlize/.
## Blog posts
There are the following blog posts focusing on specific topics.
- [Make circular heatmaps](https://jokergoo.github.io/2020/05/21/make-circular-heatmaps/)
- [Multiple-group Chord diagram](https://jokergoo.github.io/2020/06/08/multiple-group-chord-diagram/)
- [Changes in circlize 0.4.10](https://jokergoo.github.io/2020/06/14/changes-in-circlize-0.4.10/)
- [Reverse x-axes in the circular plot](https://jokergoo.github.io/2020/08/17/reverse-x-axes-in-the-circular-plot/)## Examples
See https://jokergoo.github.io/circlize_examples/.
## Install
The package can be installed from CRAN:
```r
install.packages("circlize")
```or directly from GitHub:
```r
devtools::install_github("jokergoo/circlize")
```## Basic design
Since most of the figures are composed of points, lines and polygons,
we just need to implement functions for drawing points, lines and polygons,
then the plots will not be restricted in any specific types.Current there are following low-level graphic functions:
- `circos.points()`
- `circos.lines()`
- `circos.segments()`
- `circos.rect()`
- `circos.polygon()`
- `circos.text()`
- `circos.axis()`
- `circos.raster()`
- `circos.arrow()`
- `circos.raster()`
- `circos.barplot()`
- `circos.boxplot()`
- `circos.link()`, This maybe the unique feature for circos layout to represent relationships between elements.For drawing points, lines and text through the whole track (among several sectors), the following
functions are available:- `circos.trackPoints()`
- `circos.trackLines()`
- `circos.trackText()`Draw circular heatmaps
- `circos.heatmap()`
Functions to arrange the circular layout:
- `circos.track()`
- `circos.update()`
- `circos.nested()`
- `circos.par()`
- `circos.info()`
- `circos.clear()`Theoretically, you are able to draw most kinds of circular plots by the above functions.
For specific use in Genomics, we also implement functions which add graphics in genome scale.
Functions to initialize circular plot with genomic coordinates:
- `circos.initializeWithIdeogram()`
- `circos.genomicInitialize()`Functions to arrange genomic circular layout:
- `circos.genomicTrack()`
Functions to add basic graphics in genomic scale:
- `circos.genomicPoints()`
- `circos.genomicLines()`
- `circos.genomicText()`
- `circos.genomicRect()`
- `circos.genomicLink()`Functions with specific purpose:
- `circos.genomicIdeogram()`
- `circos.genomicHeatmap()`
- `circos.genomicLabels()`
- `circos.genomicDensity()`
- `circos.genomicRainfall()`Finally, function that draws Chord diagram:
- `chordDiagram()`
## License
MIT @ Zuguang Gu