heatmap-values
Generate heatmap with RGBA from pre-built or custom color scheme.
![Minified and Gzipped Package Size](https://img.shields.io/bundlephobia/minzip/heatmap-values)
Designed for class activation map of image classifier AI model visualization.
Features
- Multiple built-in color schemes:
- red-green-blue
![heatmap of red-green-blue color scheme](https://github.com/beenotung/heatmap-values/raw/HEAD/./example/red-green-blue.webp)
- red-transparent-blue
![heatmap of red-transparent-blue color scheme](https://github.com/beenotung/heatmap-values/raw/HEAD/./example/red-transparent-blue.webp)
- hot-only
![heatmap of hot-only color scheme](https://github.com/beenotung/heatmap-values/raw/HEAD/./example/hot-only.webp)
- cold-only
![heatmap of cold-only color scheme](https://github.com/beenotung/heatmap-values/raw/HEAD/./example/cold-only.webp)
- Support custom color scheme
- Typescript support
- Isomorphic package: works in Node.js and browsers
Installation
npm install heatmap-values
You can also install heatmap-values
with pnpm, yarn, or slnpm
Usage Example
import { generate_heatmap_values, heatmap_schemes } from 'heatmap-values'
let values = generate_heatmap_values(heatmap_schemes.red_transparent_blue)
for (let i = 0; i < 256; i++) {
let [r, g, b, a] = values[i]
let color = `rgba(${r},${g},${b},${a})`
console.log(i / 255, color)
}
Detail usage example see demo.ts and demo.html.
Typescript Signature
export function generate_heatmap_values(
scheme?: HeatmapScheme,
): RGBA[]
export type HeatmapScheme = {
low: RGBA
middle: RGBA
high: RGBA
}
export type RGBA = [
r: number,
g: number,
b: number,
a: number,
]
export const heatmap_schemes: {
red_green_blue: HeatmapScheme
red_transparent_blue: HeatmapScheme
hot_only: HeatmapScheme
cold_only: HeatmapScheme
}
License
This project is licensed with BSD-2-Clause
This is free, libre, and open-source software. It comes down to four essential freedoms [ref]:
- The freedom to run the program as you wish, for any purpose
- The freedom to study how the program works, and change it so it does your computing as you wish
- The freedom to redistribute copies so you can help others
- The freedom to distribute copies of your modified versions to others