Hilbert curve is a type of space-filling curves that fold one dimensional axis into a two dimensional space, but with still keeping the locality. It has advantages to visualize data with long axis in following two aspects:
This package aims to provide an easy and flexible way to visualize data through Hilbert curve. The implementation and example figures are based on following sources:
Zuguang Gu, et al., HilbertCurve: an R/Bioconductor package for high-resolution visualization of genomic data. Bioinformatics 2016
The package is at Bioconductor now and you can install the newest version by:
library(devtools)
install_github("jokergoo/ComplexHeatmap") # in order to get the newest version of ComplexHeatmap
install_github("jokergoo/HilbertCurve")
Basically, there are two steps to make a Hilbert curve.
hc_points()
, hc_segments()
, … by giving the positions of the graphics.
hc = HilbertCurve(1, 100, level = 4)
hc_points(hc, ...)
hc_segments(hc, ...)
hc_rect(hc, ...)
hc_text(hc, ...)
There is another ‘pixel’ mode which provides a high resolution for visualizing genomic data by the Hilbert curve.
hc = HilbertCurve(1, 100000000000, level = 10)
hc_layer(hc, ...) # this can be repeated several times to add multiple layers on the curve
hc_png(hc, ...)