react-d3-heatmap
Version:
A customizable calendar heatmap
75 lines (55 loc) • 3.18 kB
Markdown
# react-d3-heatmap

A simple React heat map to visualize your data between two dates using d3.js
This heat map will display squares inside SVG. A square represent a day.
Now, it supports Typescript 🎉
# Demo
<a href="https://wnk771y0m7.codesandbox.io" target="_blank">Here is a preview</a>
Or
<a href="https://codesandbox.io/s/wnk771y0m7" target="_blank">View with the whole code</a>
# Installation
npm i react-d3-heatmap
or
yarn add react-d3-heatmap
# Usage
react-d3-heatmap is very easy to use.
Here is a basic usage :
```javascript
<HeatMapDate
startDate={startDate}
endDate={endDate}
data={data}
colors={colors}
displayLegend
/>
```
# Documentation
You can change these props :
| Prop | Definition | Type | Is required ? | Default |
|------|-------------|------|---------------|---------|
|data|Your data to visualize. <br /> It must be an array of objects that contain a date and a number|`Array[{date: Date, count: Number}]`|`true`|
|startDate|Your heat map will begin at this date| `Date`|`true`|
|endDate|Your heat map will end at this date|`Date`|`true`|
|colors|Let's colorize this heat map <br /> It must be an array of objects that a number and a color like `"#232323"`|`Array[{count: Number, color: String, text: string (optional)}]`|`true`|
|defaultColor|A string that contain a default color|`String`|`false`|`"#cdcdcd"`
|textDefaultColor|A tooltip's text displayed in legend for default color|`String`|`false`|`"0"`
|rectWidth|Set width and height for each square|`Number`|`false`|`10`
|marginRight|Space between two squares on x axis|`Number`|`false`|`4`
|marginBottom|Space between two squares on y axis|`Number`|`false`|`4`
|displayLegend|Display or not a legend|`Boolean`|`false`|`true`
|backgroundColor|Custom background color (ex: `"#232323"`)|`String`|`false`|`"#fff"`
|textColor|Custom text color (ex: `"#00ff00"`)|`String`|`false`|`"#000"`
|radius|Apply a radius on each square|`Number`|`false`|`0`
|classnames|Apply your own CSS class|`String`|`false`|`""`
|displayYear|Display on each month (ex: `17/Avr`)|`Boolean`|`false`|`false`
|onClick|Execute a callback function when clicking on a square. Params: `(data, index)`|`Function`|`false`|`{}`
|onMouseEnter|Execute a callback function when mouse entering in a square. Params: `(data, index)`|`Function`|`false`|`{}`
|onMouseLeave|Execute a callback function when mouse leaving a square. Params: `(data, index)`|`Function`|`false`|`{}`
|shouldStartMonday|Usually heatmap starts on Sunday but you can start it on Monday|`Boolean`|`false`|`false`
|monthSpace|Change space between month blocks|`Number`|`false`|`0`
|rangeDisplayData|Display data between two dates. Tip: You can create an array of one or two dates <br > Example: `[new Date("2018-10-15T17:41:27"), new Date("2019-02-21T23:01:50")]`, `[new Date("2019-02-21T23:01:50")]`, `[null, new Date("2019-02-21T23:01:50")]` |`Array[Date]`|`false`|`[]`
|fadeAnimation|Control fade in animation|`Object{animate: Boolean, duration: Number (in second)}`|`false`|`{ animate: true, duration: 0.4 }`
# Author
Tom Darneix
# License
MIT