Show Maximum Datapoint within Viewport using Stripline- CanvasJS JavaScript Charts
Show Maximum Datapoint within Viewport using Stripline- 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",
{
title:{
text: "Show Maximum Datapoint within Viewport using Stripline"
},
zoomEnabled: true,
rangeChanged: function(e){
showMaximum(e.chart);
},
axisY: {
includeZero: false
},
data: [
{
type: "candlestick",
dataPoints: [
{x: new Date(2012,01,01),y:[5198, 5629, 5159, 5385]},
{x: new Date(2012,02,01),y:[5366, 5499, 5135, 5295]},
{x: new Date(2012,03,01),y:[5296, 5378, 5154, 5248]},
{x: new Date(2012,04,01),y:[5254, 5279, 4788, 4924]},
{x: new Date(2012,05,01),y:[4910, 5286, 4770, 5278]},
{x: new Date(2012,06,01),y:[5283, 5348, 5032, 5229]},
{x: new Date(2012,07,01),y:[5220, 5448, 5164, 5258]},
{x: new Date(2012,08,01),y:[5276, 5735, 5215, 5703]},
{x: new Date(2012,09,01),y:[5704, 5815, 4888, 5619]},
{x: new Date(2012,10,01),y:[5609, 5885, 5548, 5879]},
{x: new Date(2012,11,01),y:[5878, 5965, 5823, 5905]},
{x: new Date(2013,00,01),y:[5937, 6111, 5935, 6034]},
{x: new Date(2013,01,01),y:[6040, 6052, 5671, 5693]},
{x: new Date(2013,02,01),y:[5702, 5971, 5604, 5682]},
{x: new Date(2013,03,01),y:[5697, 5962, 5477, 5930]},
{x: new Date(2013,04,01),y:[5911, 6229, 5910, 5985]},
{x: new Date(2013,05,01),y:[5997, 6011, 5566, 5842]},
{x: new Date(2013,06,01),y:[5834, 6093, 5675, 5742]},
{x: new Date(2013,07,01),y:[5776, 5808, 5118, 5471]},
{x: new Date(2013,08,01),y:[5480, 6142, 5318, 5735]},
{x: new Date(2013,09,01),y:[5756, 6309, 5700, 6299]},
{x: new Date(2013,10,01),y:[6289, 6342, 5972, 6176]},
{x: new Date(2013,11,01),y:[6171, 6415, 6129, 6304]}
]
}
]
});
chart.render();
showMaximum(chart);
function showMaximum(chart){
var maxY = -Infinity;
var xValueOfMaxY = null;
var viewportMinimum = chart.axisX[0].get("viewportMinimum");
var viewportMaximum = chart.axisX[0].get("viewportMaximum");
for(var i = 0; i < chart.data[0].dataPoints.length; i++){
for(var j = 0; j <...