Basic Column Chart - CanvasJS JavaScript Charts

Basic Column Chart - CanvasJS JavaScript Charts

by koen_demonie

HTML

<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
<br /><!-- Just so that JSFiddle's Result label doesn't overlap the Chart -->
<div id="chartContainer" style="height: 360px; width: 100%;"></div>

JavaScript

const mockDataPoints = (
   min,
   max,
   start,
   end,
   amount
 ) => {
   let data = [{
       x: new Date(
         start.getTime() +
         Math.random() * (end.getTime() - start.getTime())
       ),
       y: min
     },
     {
       x: new Date(
         start.getTime() +
         Math.random() * (end.getTime() - start.getTime())
       ),
       y: max
     }
   ];

   for (let count = 0; count < amount; count++) {
     const dateTime = new Date(
       start.getTime() + Math.random() * (end.getTime() - start.getTime())
     );
     const value = Math.round(Math.random() * (max - min) + min);
     data.push({
       x: dateTime,
       y: value
     });
   }

   data.sort((a, b) => a.x.getTime() - b.x.getTime());

   return data;
 };

 var chart = new CanvasJS.Chart("chartContainer", {
   axisY: {
     gridColor: "#0000ff",
     gridThickness: 1,
     gridDashType: "solid",
     minimum: 0,
     maximum: 100,
     interval: 10,
   },
   axisY2: {
     gridColor: "#ff0000",
     gridThickness: 1,
     gridDashType: "solid",
     minimum: 0,
     maximum: 200,
     interval: 20,
   },
   data: [{
       type: "line",
       color: "#0000ff",
       dataPoints: mockDataPoints(
         0,
         100,
         new Date(2019, 9, 1),
         new Date(2019, 9, 3),
         5
       )
     },
     {
       type: "line",
       color: "#ff0000",
       axisYType: "secondary",
       dataPoints: mockDataPoints(
         0,
         200,
         new Date(2019, 9, 1),
         new Date(2019, 9, 3),
         5
       )
     }
   ]
 });

 chart.render();