highcharts random trend
HTML
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>
<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
JavaScript
function getTrend(maxRange){
var range = Math.floor(Math.random()*maxRange);
var plusRange = Math.floor(Math.random()*range);
console.log(["maxRange", maxRange, "range", range, "plusRange", plusRange]);
return {rangeTotal: range, plusRange: plusRange, minusRange: (range-plusRange)}
}
function getNumberWithTrend( trend ) {
var randomNumber = Math.floor(Math.random()*trend.rangeTotal);
if (randomNumber <= trend.plusRange) { //if in plus range, return as it is
return randomNumber * -1;
} else { // if in minus range, deduct plus range and multiply -1
return ( randomNumber - trend.plusRange );
}
}
function getTrendedData( startNumber, percentage) {
var trend = getTrend( 1000000/100.0 * percentage);
//console.log(trend);
var data = [startNumber];
for (var i=0; i< 100; i++) {
startNumber -= getNumberWithTrend(trend);
data.push( {x:i, y:startNumber} )
}
return data;
}
var chart;
var dailyVariationPct = 20;
$( function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'scatter'
},
series: [{
name: 'Trend',
data: getTrendedData(1000000,dailyVariationPct ) //startNumber, variation%
}]
});
});