All Projects → g1eb → reactjs-calendar-heatmap

g1eb / reactjs-calendar-heatmap

Licence: MIT license
React component for d3.js calendar heatmap graph

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects

Projects that are alternatives of or similar to reactjs-calendar-heatmap

Calendar Heatmap
📊 Calendar heatmap graph
Stars: ✭ 170 (+32.81%)
Mutual labels:  d3, calendar, heatmap
simple-d3-heatmap
A javascript module to create heatmap calendars
Stars: ✭ 24 (-81.25%)
Mutual labels:  d3, calendar, heatmap
Reaviz
📊 Data visualization library for React based on D3
Stars: ✭ 215 (+67.97%)
Mutual labels:  d3, heatmap
Github Spray
Draw on your GitHub contribution graph ░▒▓█
Stars: ✭ 908 (+609.38%)
Mutual labels:  calendar, heatmap
Calendarheatmap
A calendar based heatmap which presenting a time series of data points in colors.
Stars: ✭ 113 (-11.72%)
Mutual labels:  calendar, heatmap
Calendar Heatmap
A d3 heatmap for representing time series data similar to github's contribution chart
Stars: ✭ 1,985 (+1450.78%)
Mutual labels:  d3, heatmap
Calendar Heatmap
Calendar heatmap with matplotlib and random data
Stars: ✭ 76 (-40.62%)
Mutual labels:  calendar, heatmap
leaflet heatmap
简单的可视化湖州通话数据 假设数据量很大,没法用浏览器直接绘制热力图,把绘制热力图这一步骤放到线下计算分析。使用Apache Spark并行计算数据之后,再使用Apache Spark绘制热力图,然后用leafletjs加载OpenStreetMap图层和热力图图层,以达到良好的交互效果。现在使用Apache Spark实现绘制,可能是Apache Spark不擅长这方面的计算或者是我没有设计好算法,并行计算的速度比不上单机计算。Apache Spark绘制热力图和计算代码在这 https://github.com/yuanzhaokang/ParallelizeHeatmap.git .
Stars: ✭ 13 (-89.84%)
Mutual labels:  d3, heatmap
Clustergrammer
An interactive heatmap visualization built using D3.js
Stars: ✭ 188 (+46.88%)
Mutual labels:  d3, heatmap
calendar-heatmap-mini
A d3.js heatmap representing time series data
Stars: ✭ 22 (-82.81%)
Mutual labels:  d3, heatmap
aircal
Visualize Airflow's schedule by exporting future DAG runs as events to Google Calendar.
Stars: ✭ 66 (-48.44%)
Mutual labels:  calendar
SUCAL
Sorbonne Université calendar
Stars: ✭ 14 (-89.06%)
Mutual labels:  calendar
chinese-calendar
🔖 Chinese calendar control in C#
Stars: ✭ 22 (-82.81%)
Mutual labels:  calendar
seek-meetup
收集台灣各地的前端活動!好聚好善!
Stars: ✭ 30 (-76.56%)
Mutual labels:  calendar
flutter heatmap calendar
A Heatmap Calendar based on Github's contributions chart
Stars: ✭ 47 (-63.28%)
Mutual labels:  heatmap
bob-ross-art-gallery
🖼 A visual, virtual tour of The Joy of Painting, by Bob Ross.
Stars: ✭ 27 (-78.91%)
Mutual labels:  d3
ical
📅 Golang iCalendar lexer/parser implementing RFC 5545
Stars: ✭ 28 (-78.12%)
Mutual labels:  calendar
yii2-fullcalendar-scheduler
Yii 2 component for easy fullcalendar scheduler integration
Stars: ✭ 24 (-81.25%)
Mutual labels:  calendar
jpn-atlas
TopoJSONフォーマットの日本の国、都道府県、市区町村の境界データ。Japanese municipality and prefecture boundary data in topojson format.
Stars: ✭ 17 (-86.72%)
Mutual labels:  d3
Simple-charts
Simple responsive charts
Stars: ✭ 15 (-88.28%)
Mutual labels:  d3

React component for D3.js Calendar Heatmap

This d3.js heatmap representing time series data is used to visualize tracked time over the past year, showing details for each of the days on demand.

Includes a global overview of multiple years and visualizations of year, month, week and day overview with zoom for details-on-demand.

Inspired by Github's contribution graph

Based on Calendar View by Mike Bostock
Aaand D3.js Calendar Heatmap by Darragh Kirwan

Demo

Click here for a live demo.

Global overview

calendar heatmap - global overview

Year overview

calendar heatmap - year overview

Month overview

calendar heatmap - month overview

Week overview

calendar heatmap - week overview

Day overview

calendar heatmap - day overview

Install

  1. Install 'reactjs-calendar-heatmap' with npm
npm install reactjs-calendar-heatmap
  1. Import CalendarHeatmap in your component
import CalendarHeatmap from 'reactjs-calendar-heatmap'
  1. Render CalendarHeatmap component
<CalendarHeatmap
  data={data}
  color={color}
  overview={overview}
  handler={print}>
</CalendarHeatmap>

Properties

Property Usage Default Required
data Time series data from max a year back none yes
color Theme hex color #45ff00 no
overview Initial overview type (choices are: year, month, day) year no
handler Handler function is fired on click of a time entry in daily overview none no

Example data

Time series data where each day has a total time tracked (in seconds).
Details, if provided, are shown in a tooltip on mouseover in different overviews.

var data = [{
  "date": "2016-01-01",
  "total": 17164,
  "details": [{
    "name": "Project 1",
    "date": "2016-01-01 12:30:45",
    "value": 9192
  }, {
    "name": "Project 2",
    "date": "2016-01-01 13:37:00",
    "value": 6753
  },
  .....
  {
    "name": "Project N",
    "date": "2016-01-01 17:52:41",
    "value": 1219
  }]
}]

Optimization

In some cases details array could be large and in order to fit the data into the tooltip a short summary is generated with distinct projects and their total tracked time for that date. In terms of optimization, summary data can be computed server-side and passed in using the ``summary'' attribute. And in addition to the data structure described above this would result in a summary dictionary with distinct project names and total values of tracked time in seconds, e.g.:

var data = [{
  "date": "2016-01-01",
  "total": 17164,
  "details": [.....],
  "summary": [{
    "name": "Project 1",
    "value": 9192
  }, {
    "name": "Project 2",
    "value": 6753
  },
  .....
  {
    "name": "Project N",
    "value": 1219
  }]
}]

See index.html for an example implementation with random data or click here for a live demo.

Vanilla.js version

If you are looking for a plain vanilla javascript version of the heatmap, check out calendar-heatmap-graph

AngularJS

If you want to use this heatmap as an AngularJS directive (version 1.x), see angular-calendar-heatmap

Or as an Angular component (version 2.x), see angular2-calendar-heatmap

Dependencies

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].