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 = {};
}