R package for using the cal-heatmap Javascript library
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
R
data
inst/htmlwidgets change d3 script to minified, solves SyntaxErrors in Chrome May 16, 2015
man update docs to remove old arguments May 17, 2015
.Rbuildignore initial commit May 15, 2015
.bowerrc initial commit May 15, 2015
.gitignore
DESCRIPTION update DESCRIPTION May 16, 2015
NAMESPACE update DESCRIPTION May 16, 2015
README.md
calheatmapR.Rproj initial commit May 15, 2015

README.md

calheatmapR

This package isn't under active development.

The calheatmapR package is an R interface for the cal-heatmap Javascript charting library, which is used to

create calendar heatmaps to help visualise time series data, a la github contribution graph

The package owes everything to the creators of the R package htmlwidgets (repo), Ramnath Vaidyanathan and JJ Alaire, as well as the RStudio team. And to @timelyportfolio who has created a huge amount of htmlwidgets, be sure to check out his site buildingwidgets. This is my first htmlwidget package and at the moment it is a bit limited and doesn't replicate everything that the Javascript library does.

There are options of the cal-heatmap Javascript library that aren't yet available in this package, these are the options which add more interactive elements to a calendar heatmap. Things such as next and previous to scroll through the timeseries, or the onClick event, the majority can be found in the Methods and Events sections on the cal-heatmap homepage.

Help pages can be found here, as mentioned in those pages, I am unsure how a calheatmapR plot will work in a shiny app in which the data is updated.

Installation

The calheatmapR package is only available on github, so to install you will need the devtools package installed

devtools::install_github(repo = "durtal/calheatmapR")

Data

At the moment the data to be plotted must be a list of numeric values, the names of which should be timestamps (in seconds), see the Data Format section on the cal-heatmap page. This list is converted to JSON, an example list is seen below, which corresponds to 2001-01-01 with a value of 1, thru to 2001-01-03 with a value of 100.

$`978307200`
[1] 1

$`978393600`
[1] 10

$`978480000`
[1] 100

The following two lines shows how to calculate a timestamp in R, it is perhaps a little crude and other simpler solutions are probably available, but I am unaware of them, so suggestions would be welcome

as.POSIXct("2001-01-01")
[1] "2001-01-01 GMT"

as.numeric(as.POSIXct("2001-01-01"))
[1] 978307200

Therefore to create the list from above:

demoData = list(1, 10, 100)
names(demoData) <- c(as.numeric(as.POSIXct("2001-01-01")), as.numeric(as.POSIXct("2001-01-02")), as.numeric(as.POSIXct("2001-01-03")))

Usage

The calheatmapR function initialises a cal-heatmap plot, with default options, which produces a plot showing values per minute for 12 hours.

calheatmapR(data = demoData)

Following a similar convention to the dygraphs package developed by RStudio, the calheatmapR package allows further customisation of a calendar heatmap; this customisation is, more often than not, required.

There are three supplementary functions to customise a plot, these are chDomain, chLegend and chLabel, these functions are well documented, and the argument names are the same as those used by the Javascript library. The code below shows the use of the more important chDomain arguments, namely domain, subDomain and start, the resulting plot follows, and displays days within months, starting in December 2012, for 5 months.

calheatmapR(data = demoData) %>%
    chDomain(domain = "month", subDomain = "day", start = "2000-12-01", range = 5)