A react component for heatmap visualisation in grid layout
npm install react-grid-heatmapA React component to visualize heatmap in a grid layout without using any 3rd party libraries.
  
``bash`
npm install --save react-grid-heatmap
Mandatory fields
| Name | Type | Sample |
| ---- | ------------ | ----------------------------- |
| data | number[][] | [[1,2,3], [4,5,6], [7,8,9]] |
`tsx
import React from 'react'
import { HeatMapGrid } from 'react-grid-heatmap'
const xLabels = new Array(24).fill(0).map((_, i) => ${i})
const yLabels = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
const data = new Array(yLabels.length)
.fill(0)
.map(() =>
new Array(xLabels.length).fill(0).map(() => Math.floor(Math.random() * 50 + 50))
)
const App = () => {
return (
xLabels={xLabels}
yLabels={yLabels}
/>
)
}
export default App
`
Optional Parameters
| Name | Type | Description/Example | Default Value |
| :----------- | :------- | :------------------------------------------------------ | :------------ |
| xLabels | string[] | ['1am', '2am', '3am'] | null |['Sun', 'Mon']
| yLabels | string[] | | null |"2rem"
| cellHeight | string | Height of each cell of the heatmap | |(x, y) => void
| onClick | function | Adds an handler to cell click | null |true
| square | boolean | If set to will render cells as square | false |top
| xLabelsPos | string | Location of y labels. It can be or bottom | "top" |left
| yLabelsPos | string | Location of y labels. It can be or right | "left" |(x, y, value) => ()
| cellRender | function | Render custom content in cell. | null |(x, y, ratio) => {}
| cellStyle | function | To set custom cell style | null |(index) => {}
| xLabelsStyle | function | To set custom cell style | null |(index) => {}
| yLabelsStyle | function | To set custom cell style | null |
A sample code with all parameters
`js
import React from 'react'
import { HeatMapGrid } from 'react-grid-heatmap'
const xLabels = new Array(24).fill(0).map((_, i) => ${i})
const yLabels = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri']
const data = new Array(yLabels.length)
.fill(0)
.map(() =>
new Array(xLabels.length)
.fill(0)
.map(() => Math.floor(Math.random() * 50 + 50))
)
const App = () => {
return (
}>{value},
fontSize: '.8rem',
color: rgb(0, 0, 0, ${ratio / 2 + 0.4})
})}
cellHeight='2rem'
xLabelsPos='bottom'
onClick={(x, y) => alert(Clicked (${x}, ${y}))}
yLabelsPos='right'
square
/>
export default App
`
First, run rollup to watch your src/ module and automatically recompile it into dist/ whenever you make changes.
``
npm start # runs rollup with watch flag
The second part will be running the example/ create-react-app that's linked to the local version of your module.
``(in another tab)
cd example
npm start # runs create-react-app dev server src/
Now, anytime you make a change to your library in or to the example app's example/src, create-react-app` will live-reload your local dev server so you can iterate on your component in real-time.
MIT © arunghosh