calendar-heatmap

A d3 heatmap for representing time series data similar to github's contribution chart

Github stars Tracking Chart

This project is not actively maintained

D3 Calendar Heatmap

A d3.js heatmap representing time series data. Inspired by Github's contribution chart

Reusable D3.js Calendar Heatmap chart

Configuration, Property, Usage, Default, Required, :-------------, :-------------, :-----:, :-----:, data, Chart data, none, yes, selector, DOM selector to attach the chart to, body, no, max, Maximum count, max found in data, no, startDate, Date to start heatmap at, 1 year ago, no, colorRange, Minimum and maximum chart gradient colors, ['#D8E6E7', '#218380'], no, tooltipEnabled, Option to render a tooltip, true, no, tooltipUnit, Unit to render on the tooltip, can be object for pluralization control, 'contributions', no, legendEnabled, Option to render a legend, true, no, onClick, callback function on day click events (see example below), null, no, locale, Object to translate every word used, except for tooltipUnit, see below, no, ### Default locale object

{
    months: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    days: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
    No: 'No',
    on: 'on',
    Less: 'Less',
    More: 'More'
}

Dependencies

Usage

1: Add d3.js and moment.js

2: Include calendar-heatmap.js and calendar-heatmap.css
<link rel="stylesheet" type="text/css" href="path/tocalendar-heatmap.css">
<script src="path/to/calendar-heatmap.js"></script>

3: Format the data so each array item has a date and count property.
As long as new Date() can parse the date string it's ok. Note - there all data should be rolled up into daily bucket granularity.

4: Configure the chart and render it

// chart data example
var chartData = [{
  date: valid Javascript date object,
  count: Number
}];
var chart1 = calendarHeatmap()
              .data(chartData)
              .selector('#chart-one')
              .colorRange(['#D8E6E7', '#218380'])
              .tooltipEnabled(true)
              .onClick(function (data) {
                console.log('onClick callback. Data:', data);
              });
chart1();  // render the chart

control unit pluralization

var chart1 = calendarHeatmap()
              .data(chartData)
              .tooltipUnit(
                [
                  {min: 0, unit: 'contribution'},
                  {min: 1, max: 1, unit: 'contribution'},
                  {min: 2, max: 'Infinity', unit: 'contributions'}
                ]
              );
chart1();  // render the chart

Pull Requests and issues

...are very welcome!

Main metrics

Overview
Name With OwnerDKirwan/calendar-heatmap
Primary LanguageJavaScript
Program languageHTML (Language Count: 3)
Platform
License:MIT License
所有者活动
Created At2016-02-16 20:54:30
Pushed At2020-08-09 18:04:29
Last Commit At2019-03-12 22:48:22
Release Count12
Last Release Name0.4.1 (Posted on 2016-08-20 09:20:31)
First Release Name0.1.0 (Posted on 2016-03-13 22:26:01)
用户参与
Stargazers Count2k
Watchers Count37
Fork Count140
Commits Count88
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count16
Pull Requests Open Count5
Pull Requests Close Count1
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private