dikplhd/public/assets/js/pages/apex-heatmap.js

544 lines
10 KiB
JavaScript

/**
* Theme: Attex - Responsive Tailwind CSS 3 Admin Dashboard
* Author: Coderthemes
* Module/App: Apex Area Charts
*/
//
// BASIC HEATMAP - SINGLE SERIES
//
/*
// this function will generate output in this format
// data = [
[timestamp, 23],
[timestamp, 33],
[timestamp, 12]
...
]
*/
function generateData(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = (i + 1).toString();
var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
series.push({
x: x,
y: y
});
i++;
}
return series;
}
var colors = ["#3e60d5"];
var dataColors = document.querySelector("#basic-heatmap").dataset.colors;
if (dataColors) {
colors = dataColors.split(",");
}
var options = {
chart: {
height: 380,
type: 'heatmap',
},
dataLabels: {
enabled: false
},
colors: colors,
series: [{
name: 'Metric 1',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 2',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 3',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 4',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 5',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 6',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 7',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 8',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 9',
data: generateData(20, {
min: 0,
max: 90
})
}
],
xaxis: {
type: 'category',
},
}
var chart = new ApexCharts(
document.querySelector("#basic-heatmap"),
options
);
chart.render();
//
// HEATMAP - MULTIPLE SERIES
//
/*
// this function will generate output in this format
// data = [
[timestamp, 23],
[timestamp, 33],
[timestamp, 12]
...
]
*/
function generateData(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = (i + 1).toString();
var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
series.push({
x: x,
y: y
});
i++;
}
return series;
}
var colors = ["#F3B415", "#F27036", "#663F59", "#6A6E94", "#4E88B4", "#00A7C6", "#18D8D8", '#A9D794','#46AF78'];
var dataColors = document.querySelector("#multiple-series-heatmap").dataset.colors;
if (dataColors) {
colors = dataColors.split(",");
}
var options = {
chart: {
height: 380,
type: 'heatmap',
},
dataLabels: {
enabled: false
},
colors: colors,
series: [{
name: 'Metric 1',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 2',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 3',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 4',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 5',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 6',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 7',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 8',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric 9',
data: generateData(20, {
min: 0,
max: 90
})
}
],
xaxis: {
type: 'category',
},
}
var chart = new ApexCharts(
document.querySelector("#multiple-series-heatmap"),
options
);
chart.render();
//
// HEATMAP - COLOR RANGE
//
/*
// this function will generate output in this format
// data = [
[timestamp, 23],
[timestamp, 33],
[timestamp, 12]
...
]
*/
function generateData(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = (i + 1).toString();
var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
series.push({
x: x,
y: y
});
i++;
}
return series;
}
var colors = ["#fa6767","#f9bc0d","#44badc","#42d29d"];
var dataColors = document.querySelector("#color-range-heatmap").dataset.colors;
if (dataColors) {
colors = dataColors.split(",");
}
var options = {
chart: {
height: 380,
type: 'heatmap',
},
plotOptions: {
heatmap: {
shadeIntensity: 0.5,
colorScale: {
ranges: [{
from: -30,
to: 5,
name: 'Low',
color: colors[0]
},
{
from: 6,
to: 20,
name: 'Medium',
color: colors[1]
},
{
from: 21,
to: 45,
name: 'High',
color: colors[2]
},
{
from: 46,
to: 55,
name: 'Extreme',
color: colors[3]
}
]
}
}
},
dataLabels: {
enabled: false
},
series: [{
name: 'Jan',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Feb',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Mar',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Apr',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'May',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Jun',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Jul',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Aug',
data: generateData(20, {
min: -30,
max: 55
})
},
{
name: 'Sep',
data: generateData(20, {
min: -30,
max: 55
})
}
],
}
var chart = new ApexCharts(
document.querySelector("#color-range-heatmap"),
options
);
chart.render();
//
// HEATMAP - RANGE WITHOUT SHADES
//
/*
// this function will generate output in this format
// data = [
[timestamp, 23],
[timestamp, 33],
[timestamp, 12]
...
]
*/
function generateData(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = (i + 1).toString();
var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
series.push({
x: x,
y: y
});
i++;
}
return series;
}
var colors = ["#39afd1","#47ad77"];
var dataColors = document.querySelector("#rounded-heatmap").dataset.colors;
if (dataColors) {
colors = dataColors.split(",");
}
var options = {
chart: {
height: 380,
type: 'heatmap',
},
stroke: {
width: 0
},
plotOptions: {
heatmap: {
radius: 30,
enableShades: false,
colorScale: {
ranges: [{
from: 0,
to: 50,
color: colors[0]
},
{
from: 51,
to: 100,
color: colors[1]
},
],
},
}
},
colors: colors,
dataLabels: {
enabled: true,
style: {
colors: ['#fff']
}
},
series: [{
name: 'Metric1',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric2',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric3',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric4',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric5',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric6',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric7',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric8',
data: generateData(20, {
min: 0,
max: 90
})
},
{
name: 'Metric8',
data: generateData(20, {
min: 0,
max: 90
})
}
],
xaxis: {
type: 'category',
},
grid: {
borderColor: '#f1f3fa'
}
}
var chart = new ApexCharts(
document.querySelector("#rounded-heatmap"),
options
);
chart.render();