544 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			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(); |