1094 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			1094 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			JavaScript
		
	
	
| /**
 | |
|  * Theme: Attex - Responsive Tailwind CSS 3 Admin Dashboard
 | |
|  * Author: Coderthemes
 | |
|  * Module/App: Apex line Charts
 | |
|  */
 | |
| 
 | |
| //
 | |
| // Simple line chart
 | |
| //
 | |
| var colors = ["#ffbc00"];
 | |
| var dataColors = document.querySelector("#line-chart").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 380,
 | |
|         type: 'line',
 | |
|         zoom: {
 | |
|             enabled: false
 | |
|         }
 | |
|     },
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     colors: colors,
 | |
|     stroke: {
 | |
|         width: [4],
 | |
|         curve: 'straight'
 | |
|     },
 | |
|     series: [{
 | |
|         name: "Desktops",
 | |
|         data: [30, 41, 35, 51, 49, 62, 69, 91, 126]
 | |
|     }],
 | |
|     title: {
 | |
|         text: 'Product Trends by Month',
 | |
|         align: 'center'
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa',
 | |
|     },
 | |
|     labels: series.monthDataSeries1.dates,
 | |
|     xaxis: {
 | |
|         categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep'],
 | |
|     },
 | |
|     responsive: [{
 | |
|         breakpoint: 600,
 | |
|         options: {
 | |
|             chart: {
 | |
|                 toolbar: {
 | |
|                     show: false
 | |
|                 }
 | |
|             },
 | |
|             legend: {
 | |
|                 show: false
 | |
|             },
 | |
|         }
 | |
|     }]
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart"),
 | |
|     options
 | |
| );
 | |
| chart.render();
 | |
| 
 | |
| //
 | |
| // Line chart with data labels
 | |
| //
 | |
| 
 | |
| var colors = ["#3e60d5", "#47ad77", "#fa5c7c", "#ffbc00"];
 | |
| var dataColors = document.querySelector("#line-chart-datalabel").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 380,
 | |
|         type: 'line',
 | |
|         zoom: {
 | |
|             enabled: false
 | |
|         },
 | |
|         toolbar: {
 | |
|             show: false
 | |
|         }
 | |
|     },
 | |
|     colors: colors,
 | |
|     dataLabels: {
 | |
|         enabled: true,
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [3, 3],
 | |
|         curve: 'smooth'
 | |
|     },
 | |
|     series: [{
 | |
|         name: "High - 2018",
 | |
|         data: [28, 29, 33, 36, 32, 32, 33]
 | |
|     },
 | |
|     {
 | |
|         name: "Low - 2018",
 | |
|         data: [12, 11, 14, 18, 17, 13, 13]
 | |
|     }
 | |
|     ],
 | |
|     title: {
 | |
|         text: 'Average High & Low Temperature',
 | |
|         align: 'left'
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     },
 | |
|     markers: {
 | |
|         style: 'inverted',
 | |
|         size: 6
 | |
|     },
 | |
|     xaxis: {
 | |
|         categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul'],
 | |
|         title: {
 | |
|             text: 'Month'
 | |
|         }
 | |
|     },
 | |
|     yaxis: {
 | |
|         title: {
 | |
|             text: 'Temperature'
 | |
|         },
 | |
|         min: 5,
 | |
|         max: 40
 | |
|     },
 | |
|     legend: {
 | |
|         position: 'top',
 | |
|         horizontalAlign: 'right',
 | |
|         floating: true,
 | |
|         offsetY: -25,
 | |
|         offsetX: -5
 | |
|     },
 | |
|     responsive: [{
 | |
|         breakpoint: 600,
 | |
|         options: {
 | |
|             chart: {
 | |
|                 toolbar: {
 | |
|                     show: false
 | |
|                 }
 | |
|             },
 | |
|             legend: {
 | |
|                 show: false
 | |
|             },
 | |
|         }
 | |
|     }]
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-datalabel"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| //
 | |
| // Zoomable Timeseries
 | |
| //
 | |
| 
 | |
| var ts2 = 1484418600000;
 | |
| var dates = [];
 | |
| var spikes = [5, -5, 3, -3, 8, -8]
 | |
| for (var i = 0; i < 120; i++) {
 | |
|     ts2 = ts2 + 86400000;
 | |
|     var innerArr = [ts2, dataSeries[1][i].value];
 | |
|     dates.push(innerArr)
 | |
| }
 | |
| var colors = ["#fa5c7c"];
 | |
| var dataColors = document.querySelector("#line-chart-zoomable").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         type: 'area',
 | |
|         stacked: false,
 | |
|         height: 380,
 | |
|         zoom: {
 | |
|             enabled: true
 | |
|         },
 | |
|     },
 | |
|     plotOptions: {
 | |
|         line: {
 | |
|             curve: 'smooth',
 | |
| 
 | |
|         }
 | |
|     },
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [3]
 | |
|     },
 | |
|     series: [{
 | |
|         name: 'XYZ MOTORS',
 | |
|         data: dates
 | |
|     }],
 | |
|     markers: {
 | |
|         size: 0,
 | |
|         style: 'full',
 | |
|     },
 | |
|     colors: colors,
 | |
|     title: {
 | |
|         text: 'Stock Price Movement',
 | |
|         align: 'left'
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     },
 | |
|     fill: {
 | |
|         gradient: {
 | |
|             enabled: true,
 | |
|             shadeIntensity: 1,
 | |
|             inverseColors: false,
 | |
|             opacityFrom: 0.5,
 | |
|             opacityTo: 0.1,
 | |
|             stops: [0, 70, 80, 100]
 | |
|         },
 | |
|     },
 | |
|     yaxis: {
 | |
|         min: 20000000,
 | |
|         max: 250000000,
 | |
|         labels: {
 | |
|             formatter: function (val) {
 | |
|                 return (val / 1000000).toFixed(0);
 | |
|             },
 | |
|         },
 | |
|         title: {
 | |
|             text: 'Price'
 | |
|         },
 | |
|     },
 | |
|     xaxis: {
 | |
|         type: 'datetime',
 | |
|     },
 | |
| 
 | |
|     tooltip: {
 | |
|         shared: false,
 | |
|         y: {
 | |
|             formatter: function (val) {
 | |
|                 return (val / 1000000).toFixed(0)
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     responsive: [{
 | |
|         breakpoint: 600,
 | |
|         options: {
 | |
|             chart: {
 | |
|                 toolbar: {
 | |
|                     show: false
 | |
|                 }
 | |
|             },
 | |
|             legend: {
 | |
|                 show: false
 | |
|             },
 | |
|         }
 | |
|     }]
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-zoomable"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| 
 | |
| //
 | |
| // Line Annotations 
 | |
| //
 | |
| var colors = ["#39afd1"];
 | |
| var dataColors = document.querySelector("#line-chart-annotations").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     annotations: {
 | |
|         yaxis: [{
 | |
|             y: 8200,
 | |
|             borderColor: '#47ad77',
 | |
|             label: {
 | |
|                 borderColor: '#47ad77',
 | |
|                 style: {
 | |
|                     color: '#fff',
 | |
|                     background: '#47ad77',
 | |
|                 },
 | |
|                 text: 'Support',
 | |
|             }
 | |
|         }],
 | |
|         xaxis: [{
 | |
|             x: new Date('23 Nov 2017').getTime(),
 | |
|             borderColor: '#775DD0',
 | |
|             label: {
 | |
|                 borderColor: '#775DD0',
 | |
|                 style: {
 | |
|                     color: '#fff',
 | |
|                     background: '#775DD0',
 | |
|                 },
 | |
|                 text: 'Anno Test',
 | |
|             }
 | |
|         }, {
 | |
|             x: new Date('03 Dec 2017').getTime(),
 | |
|             borderColor: '#ffbc00',
 | |
|             label: {
 | |
|                 borderColor: '#ffbc00',
 | |
|                 style: {
 | |
|                     color: '#fff',
 | |
|                     background: '#ffbc00',
 | |
|                 },
 | |
|                 orientation: 'horizontal',
 | |
|                 text: 'New Beginning',
 | |
|             }
 | |
|         }],
 | |
|         points: [{
 | |
|             x: new Date('27 Nov 2017').getTime(),
 | |
|             y: 8506.9,
 | |
|             marker: {
 | |
|                 size: 8,
 | |
|                 fillColor: '#fff',
 | |
|                 strokeColor: '#fa5c7c',
 | |
|                 radius: 2
 | |
|             },
 | |
|             label: {
 | |
|                 borderColor: '#fa5c7c',
 | |
|                 offsetY: 0,
 | |
|                 style: {
 | |
|                     color: '#fff',
 | |
|                     background: '#fa5c7c',
 | |
|                 },
 | |
| 
 | |
|                 text: 'Point Annotation',
 | |
|             }
 | |
|         }]
 | |
|     },
 | |
|     chart: {
 | |
|         height: 380,
 | |
|         type: 'line',
 | |
|         id: 'areachart-2'
 | |
|     },
 | |
|     colors: colors,
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [3],
 | |
|         curve: 'straight'
 | |
|     },
 | |
|     series: [{
 | |
|         data: series.monthDataSeries1.prices
 | |
|     }],
 | |
|     title: {
 | |
|         text: 'Line with Annotations',
 | |
|         align: 'left'
 | |
|     },
 | |
|     labels: series.monthDataSeries1.dates,
 | |
|     xaxis: {
 | |
|         type: 'datetime',
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     },
 | |
|     responsive: [{
 | |
|         breakpoint: 600,
 | |
|         options: {
 | |
|             chart: {
 | |
|                 toolbar: {
 | |
|                     show: false
 | |
|                 }
 | |
|             },
 | |
|             legend: {
 | |
|                 show: false
 | |
|             },
 | |
|         }
 | |
|     }]
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-annotations"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| //
 | |
| // Syncing charts
 | |
| //
 | |
| var colors = ["#3e60d5"];
 | |
| var dataColors = document.querySelector("#line-chart-syncing").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var optionsline2 = {
 | |
|     chart: {
 | |
|         type: 'line',
 | |
|         height: 160,
 | |
|         id: 'fb',
 | |
|         group: 'social'
 | |
|     },
 | |
|     colors: colors,
 | |
|     stroke: {
 | |
|         width: [3],
 | |
|         curve: 'straight'
 | |
|     },
 | |
|     toolbar: {
 | |
|         tools: {
 | |
|             selection: false
 | |
|         }
 | |
|     },
 | |
|     fill: {
 | |
|         opacity: 1,
 | |
|     },
 | |
|     tooltip: {
 | |
|         followCursor: false,
 | |
|         theme: 'dark',
 | |
|         x: {
 | |
|             show: false
 | |
|         },
 | |
|         marker: {
 | |
|             show: false
 | |
|         },
 | |
|         y: {
 | |
|             title: {
 | |
|                 formatter: function () {
 | |
|                     return ''
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     series: [{
 | |
|         data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
 | |
|             min: 10,
 | |
|             max: 30
 | |
|         })
 | |
|     }],
 | |
|     xaxis: {
 | |
|         type: 'datetime'
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     }
 | |
| }
 | |
| 
 | |
| var chartline2 = new ApexCharts(
 | |
|     document.querySelector("#line-chart-syncing"),
 | |
|     optionsline2
 | |
| );
 | |
| 
 | |
| chartline2.render();
 | |
| 
 | |
| // 
 | |
| // Syncing Chart-2
 | |
| //
 | |
| 
 | |
| var colors = ["#6c757d"];
 | |
| var dataColors = document.querySelector("#line-chart-syncing2").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 200,
 | |
|         type: 'line',
 | |
|         id: 'yt',
 | |
|         group: 'social'
 | |
|     },
 | |
|     colors: colors,
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     toolbar: {
 | |
|         tools: {
 | |
|             selection: false
 | |
|         }
 | |
|     },
 | |
|     tooltip: {
 | |
|         followCursor: false,
 | |
|         theme: 'dark',
 | |
|         x: {
 | |
|             show: false
 | |
|         },
 | |
|         marker: {
 | |
|             show: false
 | |
|         },
 | |
|         y: {
 | |
|             title: {
 | |
|                 formatter: function () {
 | |
|                     return ''
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [3],
 | |
|         curve: 'smooth'
 | |
|     },
 | |
| 
 | |
|     series: [{
 | |
|         data: generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 20, {
 | |
|             min: 10,
 | |
|             max: 60
 | |
|         })
 | |
|     }],
 | |
|     fill: {
 | |
|         gradient: {
 | |
|             enabled: true,
 | |
|             opacityFrom: 0.6,
 | |
|             opacityTo: 0.8,
 | |
|         }
 | |
|     },
 | |
|     legend: {
 | |
|         position: 'top',
 | |
|         horizontalAlign: 'left'
 | |
|     },
 | |
|     xaxis: {
 | |
|         type: 'datetime'
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     }
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-syncing2"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| /*
 | |
|   // this function will generate output in this format
 | |
|   // data = [
 | |
|       [timestamp, 23],
 | |
|       [timestamp, 33],
 | |
|       [timestamp, 12]
 | |
|       ...
 | |
|   ]
 | |
| */
 | |
| function generateDayWiseTimeSeries(baseval, count, yrange) {
 | |
|     var i = 0;
 | |
|     var series = [];
 | |
|     while (i < count) {
 | |
|         var x = baseval;
 | |
|         var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | |
| 
 | |
|         series.push([x, y]);
 | |
|         baseval += 86400000;
 | |
|         i++;
 | |
|     }
 | |
|     return series;
 | |
| }
 | |
| 
 | |
| 
 | |
| //
 | |
| // Gradient Line Chart
 | |
| //
 | |
| 
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 374,
 | |
|         type: 'line',
 | |
|         shadow: {
 | |
|             enabled: false,
 | |
|             color: '#bbb',
 | |
|             top: 3,
 | |
|             left: 2,
 | |
|             blur: 3,
 | |
|             opacity: 1
 | |
|         },
 | |
|     },
 | |
|     forecastDataPoints: {
 | |
|         count: 7
 | |
|     },
 | |
|       stroke: {
 | |
|         width: 5,
 | |
|         curve: 'smooth'
 | |
|     },
 | |
|     series: [{
 | |
|         name: 'Likes',
 | |
|         data: [4, 3, 10, 9, 29, 19, 22, 9, 12, 7, 19, 5, 13, 9, 17, 2, 7, 5]
 | |
|     }],
 | |
|     xaxis: {
 | |
|         type: 'datetime',
 | |
|         categories: ['1/11/2000', '2/11/2000', '3/11/2000', '4/11/2000', '5/11/2000', '6/11/2000', '7/11/2000', '8/11/2000', '9/11/2000', '10/11/2000', '11/11/2000', '12/11/2000', '1/11/2001', '2/11/2001', '3/11/2001', '4/11/2001', '5/11/2001', '6/11/2001'],
 | |
|     },
 | |
|     title: {
 | |
|         text: 'Social Media',
 | |
|         align: 'left',
 | |
|         style: {
 | |
|             fontSize: "16px",
 | |
|             color: '#666'
 | |
|         }
 | |
|     },
 | |
|     fill: {
 | |
|         type: 'gradient',
 | |
|         gradient: {
 | |
|             shade: 'dark',
 | |
|             gradientToColors: ['#fa5c7c'],
 | |
|             shadeIntensity: 1,
 | |
|             type: 'horizontal',
 | |
|             opacityFrom: 1,
 | |
|             opacityTo: 1,
 | |
|             stops: [0, 100, 100, 100]
 | |
|         },
 | |
|     },
 | |
|     markers: {
 | |
|         size: 4,
 | |
|         opacity: 0.9,
 | |
|         colors: ["#ffbc00"],
 | |
|         strokeColor: "#fff",
 | |
|         strokeWidth: 2,
 | |
|         style: 'inverted', // full, hollow, inverted
 | |
|         hover: {
 | |
|             size: 7,
 | |
|         }
 | |
|     },
 | |
|     yaxis: {
 | |
|         min: -10,
 | |
|         max: 40,
 | |
|         title: {
 | |
|             text: 'Engagement',
 | |
|         },
 | |
|     },
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa'
 | |
|     },
 | |
|     responsive: [{
 | |
|         breakpoint: 600,
 | |
|         options: {
 | |
|             chart: {
 | |
|                 toolbar: {
 | |
|                     show: false
 | |
|                 }
 | |
|             },
 | |
|             legend: {
 | |
|                 show: false
 | |
|             },
 | |
|         }
 | |
|     }]
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-gradient"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| //
 | |
| // Missing Data
 | |
| //
 | |
| var colors = ["#ffbc00", "#47ad77", "#39afd1"];
 | |
| var dataColors = document.querySelector("#line-chart-missing").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 380,
 | |
|         type: 'line',
 | |
|         zoom: {
 | |
|             enabled: false
 | |
|         },
 | |
|         animations: {
 | |
|             enabled: false
 | |
|         }
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [5, 5, 4],
 | |
|         curve: 'straight'
 | |
|     },
 | |
| 
 | |
|     series: [{
 | |
|         name: 'Peter',
 | |
|         data: [5, 5, 10, 8, 7, 5, 4, null, null, null, 10, 10, 7, 8, 6, 9]
 | |
|     }, {
 | |
|         name: 'Johnny',
 | |
|         data: [10, 15, null, 12, null, 10, 12, 15, null, null, 12, null, 14, null, null, null]
 | |
|     }, {
 | |
|         name: 'David',
 | |
|         data: [null, null, null, null, 3, 4, 1, 3, 4, 6, 7, 9, 5, null, null, null]
 | |
|     }],
 | |
|     colors: colors,
 | |
|     labels: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16],
 | |
|     grid: {
 | |
|         row: {
 | |
|             colors: ['transparent', 'transparent'], // takes an array which will be repeated on columns
 | |
|             opacity: 0.2
 | |
|         },
 | |
|         borderColor: '#f1f3fa',
 | |
|         padding: {
 | |
|             bottom: 5
 | |
|         }
 | |
|     },
 | |
|     legend: {
 | |
|         offsetY: 7,
 | |
|     }
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-missing"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| //
 | |
| // Dashed line chart
 | |
| //
 | |
| var colors = ["#6c757d", "#47ad77", "#39afd1"];
 | |
| var dataColors = document.querySelector("#line-chart-dashed").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 380,
 | |
|         type: 'line',
 | |
|         zoom: {
 | |
|             enabled: false
 | |
|         },
 | |
|     },
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     stroke: {
 | |
|         width: [3, 5, 3],
 | |
|         curve: 'straight',
 | |
|         dashArray: [0, 8, 5]
 | |
|     },
 | |
|     series: [{
 | |
|         name: "Session Duration",
 | |
|         data: [45, 52, 38, 24, 33, 26, 21, 20, 6, 8, 15, 10]
 | |
|     },
 | |
|     {
 | |
|         name: "Page Views",
 | |
|         data: [35, 41, 62, 42, 13, 18, 29, 37, 36, 51, 32, 35]
 | |
|     },
 | |
|     {
 | |
|         name: 'Total Visits',
 | |
|         data: [87, 57, 74, 99, 75, 38, 62, 47, 82, 56, 45, 47]
 | |
|     }
 | |
|     ],
 | |
|     markers: {
 | |
|         size: 0,
 | |
|         style: 'hollow', // full, hollow, inverted
 | |
|     },
 | |
|     xaxis: {
 | |
|         categories: ['01 Jan', '02 Jan', '03 Jan', '04 Jan', '05 Jan', '06 Jan', '07 Jan', '08 Jan',
 | |
|             '09 Jan', '10 Jan', '11 Jan', '12 Jan'
 | |
|         ],
 | |
|     },
 | |
|     colors: colors,
 | |
|     tooltip: {
 | |
|         y: {
 | |
|             title: {
 | |
|                 formatter: function (val) {
 | |
|                     if (val === 'Session Duration') return val + " (mins)"
 | |
|                     else if (val === 'Page Views') return val + " per session"
 | |
|                     return val;
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     },
 | |
|     grid: {
 | |
|         borderColor: '#f1f3fa',
 | |
|     },
 | |
|     legend: {
 | |
|         offsetY: 7,
 | |
|     }
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-dashed"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| // 
 | |
| // Stepline Charts
 | |
| //
 | |
| 
 | |
| var ts2 = 1484418600000;
 | |
| var data = [];
 | |
| var spikes = [5, -5, 3, -3, 8, -8]
 | |
| for (var i = 0; i < 30; i++) {
 | |
|     ts2 = ts2 + 86400000;
 | |
|     var innerArr = [ts2, dataSeries[1][i].value];
 | |
|     data.push(innerArr)
 | |
| }
 | |
| var colors = ["#47ad77"];
 | |
| var dataColors = document.querySelector("#line-chart-stepline").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         type: 'line',
 | |
|         height: 344
 | |
|     },
 | |
|     stroke: {
 | |
|         curve: 'stepline',
 | |
|     },
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     series: [{
 | |
|         data: [34, 44, 54, 21, 12, 43, 33, 23, 66, 66, 58]
 | |
|     }],
 | |
|     colors: colors,
 | |
|     title: {
 | |
|         text: 'Stepline Chart',
 | |
|         align: 'left'
 | |
|     },
 | |
|     markers: {
 | |
|         hover: {
 | |
|             sizeOffset: 4
 | |
|         }
 | |
|     },
 | |
| 
 | |
| }
 | |
| 
 | |
| var chart = new ApexCharts(
 | |
|     document.querySelector("#line-chart-stepline"),
 | |
|     options
 | |
| );
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| var colors = ["#ffbc00"];
 | |
| var dataColors = document.querySelector("#chart-line2").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| 
 | |
| /*
 | |
|     // this function will generate output in this format
 | |
|     // data = [
 | |
|         [timestamp, 23],
 | |
|         [timestamp, 33],
 | |
|         [timestamp, 12]
 | |
|         ...
 | |
|     ]
 | |
|   */
 | |
|     function generateDayWiseTimeSeries(baseval, count, yrange) {
 | |
|         var i = 0;
 | |
|         var series = [];
 | |
|         while (i < count) {
 | |
|           var x = baseval;
 | |
|           var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | |
|       
 | |
|           series.push([x, y]);
 | |
|           baseval += 86400000;
 | |
|           i++;
 | |
|         }
 | |
|         return series;
 | |
|       }
 | |
|       
 | |
|       var data = generateDayWiseTimeSeries(new Date('11 Feb 2017').getTime(), 185, {
 | |
|         min: 30,
 | |
|         max: 90
 | |
|       })
 | |
| var options = {
 | |
|     series: [{
 | |
|     data: data
 | |
|   }],
 | |
|     chart: {
 | |
|     id: 'chart2',
 | |
|     type: 'line',
 | |
|     height: 230,
 | |
|     toolbar: {
 | |
|       autoSelected: 'pan',
 | |
|       show: false
 | |
|     }
 | |
|   },
 | |
|   colors: colors,
 | |
|   stroke: {
 | |
|     width: 3
 | |
|   },
 | |
|   dataLabels: {
 | |
|     enabled: false
 | |
|   },
 | |
|   fill: {
 | |
|     opacity: 1,
 | |
|   },
 | |
|   markers: {
 | |
|     size: 0
 | |
|   },
 | |
|   xaxis: {
 | |
|     type: 'datetime'
 | |
|   }
 | |
|   };
 | |
| 
 | |
|   var chart = new ApexCharts(document.querySelector("#chart-line2"), options);
 | |
|   chart.render();
 | |
| 
 | |
| 
 | |
|   var colors = ["#ffbc00"];
 | |
|     var dataColors = document.querySelector("#chart-line").dataset.colors;
 | |
|     if (dataColors) {
 | |
|         colors = dataColors.split(",");
 | |
|     }
 | |
| 
 | |
|   var optionsLine = {
 | |
|     series: [{
 | |
|     data: data
 | |
|   }],
 | |
|     chart: {
 | |
|     id: 'chart1',
 | |
|     height: 130,
 | |
|     type: 'area',
 | |
|     brush:{
 | |
|       target: 'chart2',
 | |
|       enabled: true
 | |
|     },
 | |
|     selection: {
 | |
|       enabled: true,
 | |
|       xaxis: {
 | |
|         min: new Date('19 Jun 2017').getTime(),
 | |
|         max: new Date('14 Aug 2017').getTime()
 | |
|       }
 | |
|     },
 | |
|   },
 | |
|   colors: colors,
 | |
|   fill: {
 | |
|     type: 'gradient',
 | |
|     gradient: {
 | |
|       opacityFrom: 0.91,
 | |
|       opacityTo: 0.1,
 | |
|     }
 | |
|   },
 | |
|   xaxis: {
 | |
|     type: 'datetime',
 | |
|     tooltip: {
 | |
|       enabled: false
 | |
|     }
 | |
|   },
 | |
|   yaxis: {
 | |
|     tickAmount: 2
 | |
|   }
 | |
|   };
 | |
| 
 | |
|   var chartLine = new ApexCharts(document.querySelector("#chart-line"), optionsLine);
 | |
|   chartLine.render();
 | |
| 
 | |
| 
 | |
| //
 | |
| // Realtime chart
 | |
| //
 | |
| 
 | |
| 'use strict';
 | |
| 
 | |
| var lastDate = 0;
 | |
| var data = [];
 | |
| function getDayWiseTimeSeries(baseval, count, yrange) {
 | |
|     var i = 0;
 | |
|     while (i < count) {
 | |
|         var x = baseval;
 | |
|         var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min;
 | |
| 
 | |
|         data.push({
 | |
|             x: x, y: y
 | |
|         });
 | |
|         lastDate = baseval;
 | |
|         baseval += 86400000;
 | |
|         i++;
 | |
|     }
 | |
| }
 | |
| 
 | |
| getDayWiseTimeSeries(new Date('11 Feb 2017 GMT').getTime(), 10, {
 | |
|     min: 10,
 | |
|     max: 90
 | |
| });
 | |
| 
 | |
| function getNewSeries(baseval, yrange) {
 | |
|     var newDate = baseval + 86400000;
 | |
|     lastDate = newDate;
 | |
|     data.push({
 | |
|         x: newDate,
 | |
|         y: Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min
 | |
|     });
 | |
| }
 | |
| 
 | |
| function resetData() {
 | |
|     data = data.slice(data.length - 10, data.length);
 | |
| }
 | |
| 
 | |
| var colors = ["#39afd1"];
 | |
| var dataColors = document.querySelector("#line-chart-realtime").dataset.colors;
 | |
| if (dataColors) {
 | |
|     colors = dataColors.split(",");
 | |
| }
 | |
| var options = {
 | |
|     chart: {
 | |
|         height: 350,
 | |
|         type: 'line',
 | |
|         animations: {
 | |
|             enabled: true,
 | |
|             easing: 'linear',
 | |
|             dynamicAnimation: {
 | |
|                 speed: 2000
 | |
|             }
 | |
|         },
 | |
|         toolbar: {
 | |
|             show: false
 | |
|         },
 | |
|         zoom: {
 | |
|             enabled: false
 | |
|         }
 | |
|     },
 | |
|     dataLabels: {
 | |
|         enabled: false
 | |
|     },
 | |
|     stroke: {
 | |
|         curve: 'smooth',
 | |
|         width: [3],
 | |
|     },
 | |
|     colors: colors,
 | |
|     series: [{
 | |
|         data: data
 | |
|     }],
 | |
|     markers: {
 | |
|         size: 0
 | |
|     },
 | |
|     xaxis: {
 | |
|         type: 'datetime',
 | |
|         range: 777600000
 | |
|     },
 | |
|     yaxis: {
 | |
|         max: 100
 | |
|     },
 | |
|     legend: {
 | |
|         show: false
 | |
|     },
 | |
|     grid: {
 | |
|         borderColor: '#f1f3fa',
 | |
|     }
 | |
| };
 | |
| 
 | |
| var chart = new ApexCharts(document.querySelector("#line-chart-realtime"), options);
 | |
| 
 | |
| chart.render();
 | |
| 
 | |
| var dataPointsLength = 10;
 | |
| 
 | |
| window.setInterval(function () {
 | |
|     getNewSeries(lastDate, {
 | |
|         min: 10,
 | |
|         max: 90
 | |
|     });
 | |
| 
 | |
|     chart.updateSeries([{
 | |
|         data: data
 | |
|     }]);
 | |
| }, 2000);
 | |
| 
 | |
| // every 60 seconds, we reset the data 
 | |
| window.setInterval(function () {
 | |
|     resetData();
 | |
|     chart.updateSeries([{
 | |
|         data: data
 | |
|     }], false, true);
 | |
| }, 60000); |