/*=========================================================================================
File Name: chart-apex.js
Description: Apexchart Examples
----------------------------------------------------------------------------------------
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: PIXINVENT
Author URL: http://www.themeforest.net/user/pixinvent
==========================================================================================*/
$(function () {
'use strict';
var flatPicker = $('.flat-picker'),
isRtl = $('html').attr('data-textdirection') === 'rtl',
chartColors = {
column: {
series1: '#826af9',
series2: '#d2b0ff',
bg: '#f8d3ff'
},
success: {
shade_100: '#7eefc7',
shade_200: '#06774f'
},
donut: {
series1: '#ffe700',
series2: '#00d4bd',
series3: '#826bf8',
series4: '#2b9bf4',
series5: '#FFA1A1'
},
area: {
series3: '#a4f8cd',
series2: '#60f2ca',
series1: '#2bdac7'
}
};
// heat chart data generator
function generateDataHeat(count, yrange) {
var i = 0;
var series = [];
while (i < count) {
var x = 'w' + (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;
}
// Init flatpicker
if (flatPicker.length) {
var date = new Date();
flatPicker.each(function () {
$(this).flatpickr({
mode: 'range',
defaultDate: ['2019-05-01', '2019-05-10']
});
});
}
// Area Chart
// --------------------------------------------------------------------
var areaChartEl = document.querySelector('#line-area-chart'),
areaChartConfig = {
chart: {
height: 400,
type: 'area',
parentHeightOffset: 0,
toolbar: {
show: false
}
},
dataLabels: {
enabled: false
},
stroke: {
show: false,
curve: 'straight'
},
legend: {
show: true,
position: 'top',
horizontalAlign: 'start'
},
grid: {
xaxis: {
lines: {
show: true
}
}
},
colors: [chartColors.area.series3, chartColors.area.series2, chartColors.area.series1],
series: [
{
name: 'Visits',
data: [100, 120, 90, 170, 130, 160, 140, 240, 220, 180, 270, 280, 375]
},
{
name: 'Clicks',
data: [60, 80, 70, 110, 80, 100, 90, 180, 160, 140, 200, 220, 275]
},
{
name: 'Sales',
data: [20, 40, 30, 70, 40, 60, 50, 140, 120, 100, 140, 180, 220]
}
],
xaxis: {
categories: [
'7/12',
'8/12',
'9/12',
'10/12',
'11/12',
'12/12',
'13/12',
'14/12',
'15/12',
'16/12',
'17/12',
'18/12',
'19/12',
'20/12'
]
},
fill: {
opacity: 1,
type: 'solid'
},
tooltip: {
shared: false
},
yaxis: {
opposite: isRtl
}
};
if (typeof areaChartEl !== undefined && areaChartEl !== null) {
var areaChart = new ApexCharts(areaChartEl, areaChartConfig);
areaChart.render();
}
// Column Chart
// --------------------------------------------------------------------
var columnChartEl = document.querySelector('#column-chart'),
columnChartConfig = {
chart: {
height: 400,
type: 'bar',
stacked: true,
parentHeightOffset: 0,
toolbar: {
show: false
}
},
plotOptions: {
bar: {
columnWidth: '15%',
colors: {
backgroundBarColors: [
chartColors.column.bg,
chartColors.column.bg,
chartColors.column.bg,
chartColors.column.bg,
chartColors.column.bg
],
backgroundBarRadius: 10
}
}
},
dataLabels: {
enabled: false
},
legend: {
show: true,
position: 'top',
horizontalAlign: 'start'
},
colors: [chartColors.column.series1, chartColors.column.series2],
stroke: {
show: true,
colors: ['transparent']
},
grid: {
xaxis: {
lines: {
show: true
}
}
},
series: [
{
name: 'Apple',
data: [90, 120, 55, 100, 80, 125, 175, 70, 88, 180]
},
{
name: 'Samsung',
data: [85, 100, 30, 40, 95, 90, 30, 110, 62, 20]
}
],
xaxis: {
categories: ['7/12', '8/12', '9/12', '10/12', '11/12', '12/12', '13/12', '14/12', '15/12', '16/12']
},
fill: {
opacity: 1
},
yaxis: {
opposite: isRtl
}
};
if (typeof columnChartEl !== undefined && columnChartEl !== null) {
var columnChart = new ApexCharts(columnChartEl, columnChartConfig);
columnChart.render();
}
// Scatter Chart
// --------------------------------------------------------------------
var scatterChartEl = document.querySelector('#scatter-chart'),
scatterChartConfig = {
chart: {
height: 400,
type: 'scatter',
zoom: {
enabled: true,
type: 'xy'
},
parentHeightOffset: 0,
toolbar: {
show: false
}
},
grid: {
xaxis: {
lines: {
show: true
}
}
},
legend: {
show: true,
position: 'top',
horizontalAlign: 'start'
},
colors: [window.colors.solid.warning, window.colors.solid.primary, window.colors.solid.success],
series: [
{
name: 'Angular',
data: [
[5.4, 170],
[5.4, 100],
[6.3, 170],
[5.7, 140],
[5.9, 130],
[7.0, 150],
[8.0, 120],
[9.0, 170],
[10.0, 190],
[11.0, 220],
[12.0, 170],
[13.0, 230]
]
},
{
name: 'Vue',
data: [
[14.0, 220],
[15.0, 280],
[16.0, 230],
[18.0, 320],
[17.5, 280],
[19.0, 250],
[20.0, 350],
[20.5, 320],
[20.0, 320],
[19.0, 280],
[17.0, 280],
[22.0, 300],
[18.0, 120]
]
},
{
name: 'React',
data: [
[14.0, 290],
[13.0, 190],
[20.0, 220],
[21.0, 350],
[21.5, 290],
[22.0, 220],
[23.0, 140],
[19.0, 400],
[20.0, 200],
[22.0, 90],
[20.0, 120]
]
}
],
xaxis: {
tickAmount: 10,
labels: {
formatter: function (val) {
return parseFloat(val).toFixed(1);
}
}
},
yaxis: {
opposite: isRtl
}
};
if (typeof scatterChartEl !== undefined && scatterChartEl !== null) {
var scatterChart = new ApexCharts(scatterChartEl, scatterChartConfig);
scatterChart.render();
}
// Line Chart
// --------------------------------------------------------------------
var lineChartEl = document.querySelector('#line-chart'),
lineChartConfig = {
chart: {
height: 400,
type: 'line',
zoom: {
enabled: false
},
parentHeightOffset: 0,
toolbar: {
show: false
}
},
series: [
{
data: [280, 200, 220, 180, 270, 250, 70, 90, 200, 150, 160, 100, 150, 100, 50]
}
],
markers: {
strokeWidth: 7,
strokeOpacity: 1,
strokeColors: [window.colors.solid.white],
colors: [window.colors.solid.warning]
},
dataLabels: {
enabled: false
},
stroke: {
curve: 'straight'
},
colors: [window.colors.solid.warning],
grid: {
xaxis: {
lines: {
show: true
}
},
padding: {
top: -20
}
},
tooltip: {
custom: function (data) {
return (
'<div class="px-1 py-50">' +
'<span>' +
data.series[data.seriesIndex][data.dataPointIndex] +
'%</span>' +
'</div>'
);
}
},
xaxis: {
categories: [
'7/12',
'8/12',
'9/12',
'10/12',
'11/12',
'12/12',
'13/12',
'14/12',
'15/12',
'16/12',
'17/12',
'18/12',
'19/12',
'20/12',
'21/12'
]
},
yaxis: {
opposite: isRtl
}
};
if (typeof lineChartEl !== undefined && lineChartEl !== null) {
var lineChart = new ApexCharts(lineChartEl, lineChartConfig);
lineChart.render();
}
// Bar Chart
// --------------------------------------------------------------------
var barChartEl = document.querySelector('#bar-chart'),
barChartConfig = {
chart: {
height: 400,
type: 'bar',
parentHeightOffset: 0,
toolbar: {
show: false
}
},
plotOptions: {
bar: {
horizontal: true,
barHeight: '30%',
endingShape: 'rounded'
}
},
grid: {
xaxis: {
lines: {
show: false
}
},
padding: {
top: -15,
bottom: -10
}
},
colors: window.colors.solid.info,
dataLabels: {
enabled: false
},
series: [
{
data: [700, 350, 480, 600, 210, 550, 150]
}
],
xaxis: {
categories: ['MON, 11', 'THU, 14', 'FRI, 15', 'MON, 18', 'WED, 20', 'FRI, 21', 'MON, 23']
},
yaxis: {
opposite: isRtl
}
};
if (typeof barChartEl !== undefined && barChartEl !== null) {
var barChart = new ApexCharts(barChartEl, barChartConfig);
barChart.render();
}
// Candlestick Chart
// --------------------------------------------------------------------
var candlestickEl = document.querySelector('#candlestick-chart'),
candlestickChartConfig = {
chart: {
height: 400,
type: 'candlestick',
parentHeightOffset: 0,
toolbar: {
show: false
}
},
series: [
{
data: [
{
x: new Date(1538778600000),
y: [150, 170, 50, 100]
},
{
x: new Date(1538780400000),
y: [200, 400, 170, 330]
},
{
x: new Date(1538782200000),
y: [330, 340, 250, 280]
},
{
x: new Date(1538784000000),
y: [300, 330, 200, 320]
},
{
x: new Date(1538785800000),
y: [320, 450, 280, 350]
},
{
x: new Date(1538787600000),
y: [300, 350, 80, 250]
},
{
x: new Date(1538789400000),
y: [200, 330, 170, 300]
},
{
x: new Date(1538791200000),
y: [200, 220, 70, 130]
},
{
x: new Date(1538793000000),
y: [220, 270, 180, 250]
},
{
x: new Date(1538794800000),
y: [200, 250, 80, 100]
},
{
x: new Date(1538796600000),
y: [150, 170, 50, 120]
},
{
x: new Date(1538798400000),
y: [110, 450, 10, 420]
},
{
x: new Date(1538800200000),
y: [400, 480, 300, 320]
},
{
x: new Date(1538802000000),
y: [380, 480, 350, 450]
}
]
}
],
xaxis: {
type: 'datetime'
},
yaxis: {
tooltip: {
enabled: true
},
opposite: isRtl
},
grid: {
xaxis: {
lines: {
show: true
}
},
padding: {
top: -23
}
},
plotOptions: {
candlestick: {
colors: {
upward: window.colors.solid.success,
downward: window.colors.solid.danger
}
},
bar: {
columnWidth: '40%'
}
}
};
if (typeof candlestickEl !== undefined && candlestickEl !== null) {
var candlestickChart = new ApexCharts(candlestickEl, candlestickChartConfig);
candlestickChart.render();
}
// Heat map chart
// --------------------------------------------------------------------
var heatmapEl = document.querySelector('#heatmap-chart'),
heatmapChartConfig = {
chart: {
height: 350,
type: 'heatmap',
parentHeightOffset: 0,
toolbar: {
show: false
}
},
plotOptions: {
heatmap: {
enableShades: false,
colorScale: {
ranges: [
{
from: 0,
to: 10,
name: '0-10',
color: '#b9b3f8'
},
{
from: 11,
to: 20,
name: '10-20',
color: '#aba4f6'
},
{
from: 21,
to: 30,
name: '20-30',
color: '#9d95f5'
},
{
from: 31,
to: 40,
name: '30-40',
color: '#8f85f3'
},
{
from: 41,
to: 50,
name: '40-50',
color: '#8176f2'
},
{
from: 51,
to: 60,
name: '50-60',
color: '#7367f0'
}
]
}
}
},
dataLabels: {
enabled: false
},
legend: {
show: true,
position: 'bottom'
},
grid: {
padding: {
top: -25
}
},
series: [
{
name: 'SUN',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'MON',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'TUE',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'WED',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'THU',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'FRI',
data: generateDataHeat(24, {
min: 0,
max: 60
})
},
{
name: 'SAT',
data: generateDataHeat(24, {
min: 0,
max: 60
})
}
],
xaxis: {
labels: {
show: false
},
axisBorder: {
show: false
},
axisTicks: {
show: false
}
}
};
if (typeof heatmapEl !== undefined && heatmapEl !== null) {
var heatmapChart = new ApexCharts(heatmapEl, heatmapChartConfig);
heatmapChart.render();
}
// Radialbar Chart
// --------------------------------------------------------------------
var radialBarChartEl = document.querySelector('#radialbar-chart'),
radialBarChartConfig = {
chart: {
height: 350,
type: 'radialBar'
},
colors: [chartColors.donut.series1, chartColors.donut.series2, chartColors.donut.series4],
plotOptions: {
radialBar: {
size: 185,
hollow: {
size: '25%'
},
track: {
margin: 15
},
dataLabels: {
name: {
fontSize: '2rem',
fontFamily: 'Montserrat'
},
value: {
fontSize: '1rem',
fontFamily: 'Montserrat'
},
total: {
show: true,
fontSize: '1rem',
label: 'Comments',
formatter: function (w) {
return '80%';
}
}
}
}
},
grid: {
padding: {
top: -35,
bottom: -30
}
},
legend: {
show: true,
position: 'bottom'
},
stroke: {
lineCap: 'round'
},
series: [80, 50, 35],
labels: ['Comments', 'Replies', 'Shares']
};
if (typeof radialBarChartEl !== undefined && radialBarChartEl !== null) {
var radialChart = new ApexCharts(radialBarChartEl, radialBarChartConfig);
radialChart.render();
}
// Radar Chart
// --------------------------------------------------------------------
var radarChartEl = document.querySelector('#radar-chart'),
radarChartConfig = {
chart: {
height: 400,
type: 'radar',
toolbar: {
show: false
},
parentHeightOffset: 0,
dropShadow: {
enabled: false,
blur: 8,
left: 1,
top: 1,
opacity: 0.2
}
},
legend: {
show: true,
position: 'bottom'
},
yaxis: {
show: false
},
series: [
{
name: 'iPhone 11',
data: [41, 64, 81, 60, 42, 42, 33, 23]
},
{
name: 'Samsung s20',
data: [65, 46, 42, 25, 58, 63, 76, 43]
}
],
colors: [chartColors.donut.series1, chartColors.donut.series3],
xaxis: {
categories: ['Battery', 'Brand', 'Camera', 'Memory', 'Storage', 'Display', 'OS', 'Price']
},
fill: {
opacity: [1, 0.8]
},
stroke: {
show: false,
width: 0
},
markers: {
size: 0
},
grid: {
show: false,
padding: {
top: -20,
bottom: -20
}
}
};
if (typeof radarChartEl !== undefined && radarChartEl !== null) {
var radarChart = new ApexCharts(radarChartEl, radarChartConfig);
radarChart.render();
}
// Donut Chart
// --------------------------------------------------------------------
var donutChartEl = document.querySelector('#donut-chart'),
donutChartConfig = {
chart: {
height: 350,
type: 'donut'
},
legend: {
show: true,
position: 'bottom'
},
labels: ['Operational', 'Networking', 'Hiring', 'R&D'],
series: [85, 16, 50, 50],
colors: [
chartColors.donut.series1,
chartColors.donut.series5,
chartColors.donut.series3,
chartColors.donut.series2
],
dataLabels: {
enabled: true,
formatter: function (val, opt) {
return parseInt(val) + '%';
}
},
plotOptions: {
pie: {
donut: {
labels: {
show: true,
name: {
fontSize: '2rem',
fontFamily: 'Montserrat'
},
value: {
fontSize: '1rem',
fontFamily: 'Montserrat',
formatter: function (val) {
return parseInt(val) + '%';
}
},
total: {
show: true,
fontSize: '1.5rem',
label: 'Operational',
formatter: function (w) {
return '31%';
}
}
}
}
}
},
responsive: [
{
breakpoint: 992,
options: {
chart: {
height: 380
}
}
},
{
breakpoint: 576,
options: {
chart: {
height: 320
},
plotOptions: {
pie: {
donut: {
labels: {
show: true,
name: {
fontSize: '1.5rem'
},
value: {
fontSize: '1rem'
},
total: {
fontSize: '1.5rem'
}
}
}
}
}
}
}
]
};
if (typeof donutChartEl !== undefined && donutChartEl !== null) {
var donutChart = new ApexCharts(donutChartEl, donutChartConfig);
donutChart.render();
}
});