786 lines
17 KiB
JavaScript
786 lines
17 KiB
JavaScript
/*
|
|
Template Name: Grenviro Monitoring
|
|
Author: Themesbrand
|
|
Website: https://Themesbrand.com/
|
|
Contact: Themesbrand@gmail.com
|
|
File: Bar Chart init js
|
|
*/
|
|
|
|
// get colors array from the string
|
|
function getChartColorsArray(chartId) {
|
|
if (document.getElementById(chartId) !== null) {
|
|
var colors = document.getElementById(chartId).getAttribute("data-colors");
|
|
colors = JSON.parse(colors);
|
|
return colors.map(function (value) {
|
|
var newValue = value.replace(" ", "");
|
|
if (newValue.indexOf(",") === -1) {
|
|
var color = getComputedStyle(document.documentElement).getPropertyValue(newValue);
|
|
if (color) return color;
|
|
else return newValue;;
|
|
} else {
|
|
var val = value.split(',');
|
|
if (val.length == 2) {
|
|
var rgbaColor = getComputedStyle(document.documentElement).getPropertyValue(val[0]);
|
|
rgbaColor = "rgba(" + rgbaColor + "," + val[1] + ")";
|
|
return rgbaColor;
|
|
} else {
|
|
return newValue;
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
// Basic Bar chart
|
|
var chartBarColors = getChartColorsArray("bar_chart");
|
|
if(chartBarColors){
|
|
var options = {
|
|
chart: {
|
|
height: 350,
|
|
type: 'bar',
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
}
|
|
},
|
|
dataLabels: {
|
|
enabled: false
|
|
},
|
|
series: [{
|
|
data: [380, 430, 450, 475, 550, 584, 780, 1100, 1220, 1365]
|
|
}],
|
|
colors: chartBarColors,
|
|
grid: {
|
|
borderColor: '#f1f1f1',
|
|
},
|
|
xaxis: {
|
|
categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan', 'United States', 'China', 'Germany'],
|
|
}
|
|
}
|
|
var chart = new ApexCharts(document.querySelector("#bar_chart"),options);
|
|
chart.render();
|
|
}
|
|
|
|
// Custom DataLabels Bar
|
|
var chartDatalabelsBarColors = getChartColorsArray("custom_datalabels_bar");
|
|
if(chartDatalabelsBarColors){
|
|
var options = {
|
|
series: [{
|
|
data: [400, 430, 448, 470, 540, 580, 690, 1100, 1200, 1380]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 350,
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
barHeight: '100%',
|
|
distributed: true,
|
|
horizontal: true,
|
|
dataLabels: {
|
|
position: 'bottom'
|
|
},
|
|
}
|
|
},
|
|
colors: chartDatalabelsBarColors,
|
|
dataLabels: {
|
|
enabled: true,
|
|
textAnchor: 'start',
|
|
style: {
|
|
colors: ['#fff']
|
|
},
|
|
formatter: function (val, opt) {
|
|
return opt.w.globals.labels[opt.dataPointIndex] + ": " + val
|
|
},
|
|
offsetX: 0,
|
|
dropShadow: {
|
|
enabled: false
|
|
}
|
|
},
|
|
stroke: {
|
|
width: 1,
|
|
colors: ['#fff']
|
|
},
|
|
xaxis: {
|
|
categories: ['South Korea', 'Canada', 'United Kingdom', 'Netherlands', 'Italy', 'France', 'Japan',
|
|
'United States', 'China', 'India'
|
|
],
|
|
},
|
|
yaxis: {
|
|
labels: {
|
|
show: false
|
|
}
|
|
},
|
|
title: {
|
|
text: 'Custom DataLabels',
|
|
align: 'center',
|
|
floating: true,
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
subtitle: {
|
|
text: 'Category Names as DataLabels inside bars',
|
|
align: 'center',
|
|
},
|
|
tooltip: {
|
|
theme: 'dark',
|
|
x: {
|
|
show: false
|
|
},
|
|
y: {
|
|
title: {
|
|
formatter: function () {
|
|
return ''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#custom_datalabels_bar"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Stacked Bar Charts
|
|
var chartStackedBarColors = getChartColorsArray("stacked_bar");
|
|
if(chartStackedBarColors){
|
|
var options = {
|
|
series: [{
|
|
name: 'Marine Sprite',
|
|
data: [44, 55, 41, 37, 22, 43, 21]
|
|
}, {
|
|
name: 'Striking Calf',
|
|
data: [53, 32, 33, 52, 13, 43, 32]
|
|
}, {
|
|
name: 'Tank Picture',
|
|
data: [12, 17, 11, 9, 15, 11, 20]
|
|
}, {
|
|
name: 'Bucket Slope',
|
|
data: [9, 7, 5, 8, 6, 9, 4]
|
|
}, {
|
|
name: 'Reborn Kid',
|
|
data: [25, 12, 19, 32, 25, 24, 10]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 350,
|
|
stacked: true,
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
},
|
|
},
|
|
stroke: {
|
|
width: 1,
|
|
colors: ['#fff']
|
|
},
|
|
title: {
|
|
text: 'Fiction Books Sales',
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
xaxis: {
|
|
categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
|
|
labels: {
|
|
formatter: function (val) {
|
|
return val + "K"
|
|
}
|
|
}
|
|
},
|
|
yaxis: {
|
|
title: {
|
|
text: undefined
|
|
},
|
|
},
|
|
tooltip: {
|
|
y: {
|
|
formatter: function (val) {
|
|
return val + "K"
|
|
}
|
|
}
|
|
},
|
|
fill: {
|
|
opacity: 1
|
|
},
|
|
legend: {
|
|
position: 'top',
|
|
horizontalAlign: 'left',
|
|
offsetX: 40
|
|
},
|
|
colors: chartStackedBarColors
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#stacked_bar"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Stacked Bars 100
|
|
var chartStackedBar100Colors = getChartColorsArray("stacked_bar_100");
|
|
if(chartStackedBar100Colors){
|
|
var options = {
|
|
series: [{
|
|
name: 'Marine Sprite',
|
|
data: [44, 55, 41, 37, 22, 43, 21]
|
|
}, {
|
|
name: 'Striking Calf',
|
|
data: [53, 32, 33, 52, 13, 43, 32]
|
|
}, {
|
|
name: 'Tank Picture',
|
|
data: [12, 17, 11, 9, 15, 11, 20]
|
|
}, {
|
|
name: 'Bucket Slope',
|
|
data: [9, 7, 5, 8, 6, 9, 4]
|
|
}, {
|
|
name: 'Reborn Kid',
|
|
data: [25, 12, 19, 32, 25, 24, 10]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 350,
|
|
stacked: true,
|
|
stackType: '100%',
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
},
|
|
},
|
|
stroke: {
|
|
width: 1,
|
|
colors: ['#fff']
|
|
},
|
|
title: {
|
|
text: '100% Stacked Bar',
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
xaxis: {
|
|
categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
|
|
},
|
|
tooltip: {
|
|
y: {
|
|
formatter: function (val) {
|
|
return val + "K"
|
|
}
|
|
}
|
|
},
|
|
fill: {
|
|
opacity: 1
|
|
|
|
},
|
|
legend: {
|
|
position: 'top',
|
|
horizontalAlign: 'left',
|
|
offsetX: 40
|
|
},
|
|
colors: chartStackedBar100Colors
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#stacked_bar_100"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Bar with Negative Values
|
|
var chartNegativeBarColors = getChartColorsArray("negative_bars");
|
|
if(chartNegativeBarColors){
|
|
var options = {
|
|
series: [{
|
|
name: 'Males',
|
|
data: [0.4, 0.65, 0.76, 0.88, 1.5, 2.1, 2.9, 3.8, 3.9, 4.2, 4, 4.3, 4.1, 4.2, 4.5,
|
|
3.9, 3.5, 3
|
|
]
|
|
},
|
|
{
|
|
name: 'Females',
|
|
data: [-0.8, -1.05, -1.06, -1.18, -1.4, -2.2, -2.85, -3.7, -3.96, -4.22, -4.3, -4.4,
|
|
-4.1, -4, -4.1, -3.4, -3.1, -2.8
|
|
]
|
|
}
|
|
],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 360,
|
|
stacked: true,
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
colors: chartNegativeBarColors,
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
barHeight: '80%',
|
|
},
|
|
},
|
|
dataLabels: {
|
|
enabled: false
|
|
},
|
|
stroke: {
|
|
width: 1,
|
|
colors: ["#fff"]
|
|
},
|
|
|
|
grid: {
|
|
xaxis: {
|
|
lines: {
|
|
show: false
|
|
}
|
|
}
|
|
},
|
|
yaxis: {
|
|
min: -5,
|
|
max: 5,
|
|
title: {
|
|
text: 'Age',
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
},
|
|
tooltip: {
|
|
shared: false,
|
|
x: {
|
|
formatter: function (val) {
|
|
return val
|
|
}
|
|
},
|
|
y: {
|
|
formatter: function (val) {
|
|
return Math.abs(val) + "%"
|
|
}
|
|
}
|
|
},
|
|
title: {
|
|
text: 'Mauritius population pyramid 2011',
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
xaxis: {
|
|
categories: ['85+', '80-84', '75-79', '70-74', '65-69', '60-64', '55-59', '50-54',
|
|
'45-49', '40-44', '35-39', '30-34', '25-29', '20-24', '15-19', '10-14', '5-9',
|
|
'0-4'
|
|
],
|
|
title: {
|
|
text: 'Percent'
|
|
},
|
|
labels: {
|
|
formatter: function (val) {
|
|
return Math.abs(Math.round(val)) + "%"
|
|
}
|
|
}
|
|
},
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#negative_bars"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Bar with Markers
|
|
var chartBarMarkersColors = getChartColorsArray("bar_markers");
|
|
if(chartBarMarkersColors){
|
|
var options = {
|
|
series: [{
|
|
name: 'Actual',
|
|
data: [{
|
|
x: '2011',
|
|
y: 12,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 14,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
},
|
|
{
|
|
x: '2012',
|
|
y: 44,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 54,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
},
|
|
{
|
|
x: '2013',
|
|
y: 54,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 52,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
},
|
|
{
|
|
x: '2014',
|
|
y: 66,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 65,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
},
|
|
{
|
|
x: '2015',
|
|
y: 81,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 66,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
},
|
|
{
|
|
x: '2016',
|
|
y: 67,
|
|
goals: [{
|
|
name: 'Expected',
|
|
value: 70,
|
|
strokeWidth: 5,
|
|
strokeColor: '#564ab1'
|
|
}]
|
|
}
|
|
]
|
|
}],
|
|
chart: {
|
|
height: 350,
|
|
type: 'bar',
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
}
|
|
},
|
|
colors: chartBarMarkersColors,
|
|
dataLabels: {
|
|
formatter: function (val, opt) {
|
|
var goals =
|
|
opt.w.config.series[opt.seriesIndex].data[opt.dataPointIndex]
|
|
.goals
|
|
|
|
// if (goals && goals.length) {
|
|
// return `${val} / ${goals[0].value}`
|
|
// }
|
|
return val
|
|
}
|
|
},
|
|
legend: {
|
|
show: true,
|
|
showForSingleSeries: true,
|
|
customLegendItems: ['Actual', 'Expected'],
|
|
markers: {
|
|
fillColors: chartBarMarkersColors
|
|
}
|
|
}
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#bar_markers"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Reversed Bar Chart
|
|
var chartBarReversedColors = getChartColorsArray("reversed_bars");
|
|
if(chartBarReversedColors){
|
|
var options = {
|
|
series: [{
|
|
data: [400, 430, 448, 470, 540, 580, 690]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 350,
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
annotations: {
|
|
xaxis: [{
|
|
x: 500,
|
|
borderColor: '#038edc',
|
|
label: {
|
|
borderColor: '#038edc',
|
|
style: {
|
|
color: '#fff',
|
|
background: '#038edc',
|
|
},
|
|
text: 'X annotation',
|
|
}
|
|
}],
|
|
yaxis: [{
|
|
y: 'July',
|
|
y2: 'September',
|
|
label: {
|
|
text: 'Y annotation'
|
|
}
|
|
}]
|
|
},
|
|
colors: chartBarReversedColors,
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
}
|
|
},
|
|
dataLabels: {
|
|
enabled: true
|
|
},
|
|
xaxis: {
|
|
categories: ['June', 'July', 'August', 'September', 'October', 'November', 'December'],
|
|
},
|
|
grid: {
|
|
xaxis: {
|
|
lines: {
|
|
show: true
|
|
}
|
|
}
|
|
},
|
|
yaxis: {
|
|
reversed: true,
|
|
axisTicks: {
|
|
show: true
|
|
}
|
|
}
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#reversed_bars"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Patterned Charts
|
|
var chartPatternedColors = getChartColorsArray("patterned_bars");
|
|
if(chartPatternedColors){
|
|
var options = {
|
|
series: [{
|
|
name: 'Marine Sprite',
|
|
data: [44, 55, 41, 37, 22, 43, 21]
|
|
}, {
|
|
name: 'Striking Calf',
|
|
data: [53, 32, 33, 52, 13, 43, 32]
|
|
}, {
|
|
name: 'Tank Picture',
|
|
data: [12, 17, 11, 9, 15, 11, 20]
|
|
}, {
|
|
name: 'Bucket Slope',
|
|
data: [9, 7, 5, 8, 6, 9, 4]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 350,
|
|
stacked: true,
|
|
dropShadow: {
|
|
enabled: true,
|
|
blur: 1,
|
|
opacity: 0.25
|
|
},
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
barHeight: '60%',
|
|
},
|
|
},
|
|
dataLabels: {
|
|
enabled: false
|
|
},
|
|
stroke: {
|
|
width: 2,
|
|
},
|
|
title: {
|
|
text: 'Compare Sales Strategy',
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
xaxis: {
|
|
categories: [2008, 2009, 2010, 2011, 2012, 2013, 2014],
|
|
},
|
|
yaxis: {
|
|
title: {
|
|
text: undefined
|
|
},
|
|
},
|
|
tooltip: {
|
|
shared: false,
|
|
y: {
|
|
formatter: function (val) {
|
|
return val + "K"
|
|
}
|
|
}
|
|
},
|
|
fill: {
|
|
type: 'pattern',
|
|
opacity: 1,
|
|
pattern: {
|
|
style: ['circles', 'slantedLines', 'verticalLines', 'horizontalLines'], // string or array of strings
|
|
|
|
}
|
|
},
|
|
states: {
|
|
hover: {
|
|
filter: 'none'
|
|
}
|
|
},
|
|
legend: {
|
|
position: 'right',
|
|
offsetY: 40
|
|
},
|
|
colors: chartPatternedColors
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#patterned_bars"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Groups Bar Charts
|
|
var chartGroupbarColors = getChartColorsArray("grouped_bar");
|
|
if(chartGroupbarColors){
|
|
var options = {
|
|
series: [{
|
|
data: [44, 55, 41, 64, 22, 43, 21]
|
|
}, {
|
|
data: [53, 32, 33, 52, 13, 44, 32]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 410,
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
dataLabels: {
|
|
position: 'top',
|
|
},
|
|
}
|
|
},
|
|
dataLabels: {
|
|
enabled: true,
|
|
offsetX: -6,
|
|
style: {
|
|
fontSize: '12px',
|
|
colors: ['#fff']
|
|
}
|
|
},
|
|
stroke: {
|
|
show: true,
|
|
width: 1,
|
|
colors: ['#fff']
|
|
},
|
|
tooltip: {
|
|
shared: true,
|
|
intersect: false
|
|
},
|
|
xaxis: {
|
|
categories: [2001, 2002, 2003, 2004, 2005, 2006, 2007],
|
|
},
|
|
colors: chartGroupbarColors
|
|
};
|
|
|
|
var chart = new ApexCharts(document.querySelector("#grouped_bar"), options);
|
|
chart.render();
|
|
}
|
|
|
|
// Bar with Images
|
|
|
|
var options = {
|
|
series: [{
|
|
name: 'coins',
|
|
data: [2, 4, 3, 4, 3, 5, 5, 6.5, 6, 5, 4, 5, 8, 7, 7, 8, 8, 10, 9, 9, 12, 12,
|
|
11, 12, 13, 14, 16, 14, 15, 17, 19, 21
|
|
]
|
|
}],
|
|
chart: {
|
|
type: 'bar',
|
|
height: 410,
|
|
animations: {
|
|
enabled: false
|
|
},
|
|
toolbar: {
|
|
show: false,
|
|
}
|
|
},
|
|
plotOptions: {
|
|
bar: {
|
|
horizontal: true,
|
|
barHeight: '100%',
|
|
|
|
},
|
|
},
|
|
dataLabels: {
|
|
enabled: false,
|
|
},
|
|
stroke: {
|
|
colors: ["#fff"],
|
|
width: 0.2
|
|
},
|
|
labels: Array.apply(null, {
|
|
length: 39
|
|
}).map(function (el, index) {
|
|
return index + 1;
|
|
}),
|
|
yaxis: {
|
|
axisBorder: {
|
|
show: false
|
|
},
|
|
axisTicks: {
|
|
show: false
|
|
},
|
|
labels: {
|
|
show: false
|
|
},
|
|
title: {
|
|
text: 'Weight',
|
|
},
|
|
},
|
|
grid: {
|
|
position: 'back'
|
|
},
|
|
title: {
|
|
text: 'Paths filled by clipped image',
|
|
align: 'right',
|
|
offsetY: 30,
|
|
style: {
|
|
fontWeight: 500,
|
|
},
|
|
},
|
|
fill: {
|
|
type: 'image',
|
|
opacity: 0.87,
|
|
image: {
|
|
src: ['build/images/small/img-4.jpg'],
|
|
width: 466,
|
|
height: 406
|
|
}
|
|
},
|
|
};
|
|
|
|
if(document.querySelector("#bar_images")){
|
|
var chart = new ApexCharts(document.querySelector("#bar_images"), options);
|
|
chart.render();
|
|
} |