Inver fill Area in Area Chart using Additional Series- CanvasJS JavaScript Charts

Inver fill Area in Area Chart using Additional Series- CanvasJS JavaScript Charts

by canvasjs

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

var chart = new CanvasJS.Chart("chartContainer",
	{
        
      data: [
      {
        type: "area",
        color: "#369EAD",
        dataPoints: [
        { x: 10, y: -71 },
        { x: 20, y: -55},
        { x: 30, y: -50 },
        { x: 40, y: -65 },
        { x: 50, y: -95 },
        { x: 60, y: -68 },
        { x: 70, y: -28 },
        { x: 80, y: -34 },
        { x: 90, y: -14}
        ]
      }
      ]
    });

invertFillArea(chart);
chart.render();

function invertFillArea(chart){
  
  chart.options.data[0].type = "line";
  
  var dataPoints = [];
  var dataSeries = {type: "area", axisYType: "secondary", lineThickness: 0, markerSize: 0, 
                    color: "#369EAD", toolTipContent: null, dataPoints: dataPoints};
  //Invert DataPoint Y Values.
	for(var i = 0; i < chart.options.data[0].dataPoints.length; i++){
    dataPoints.push({x: chart.options.data[0].dataPoints[i].x, y: 100 + chart.options.data[0].dataPoints[i].y});
  }
  
  chart.options.data.push(dataSeries);
  
  //Invert Y Axis Labels
  if(!chart.options.axisY)
    chart.options.axisY = {};
  
  chart.options.axisY.minimum = -100;
  chart.options.axisY.maximum = 0;

  if(!chart.options.axisY2)
    chart.options.axisY2 = {};
  
  chart.options.axisY2.minimum = 0;
  chart.options.axisY2.maximum = 100;
  chart.options.axisY2.valueFormatString = " ";
  chart.options.axisY2.lineThickness = 0;
  
  //Invert ToolTip Values
  if(!chart.options.toolTip)
    chart.options.toolTip = {};
}