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 🎉
Here is a preview Or View with the whole code
npm i react-d3-heatmap
or
yarn add react-d3-heatmap
react-d3-heatmap is very easy to use.
Here is a basic usage :
<HeatMapDate
startDate={startDate}
endDate={endDate}
data={data}
colors={colors}
displayLegend
/>
You can change these props :
Prop | Definition | Type | Is required ? | Default |
---|---|---|---|---|
data | Your data to visualize. 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 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 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 } |
Tom Darneix
MIT