From: Robert Konigsberg Plot which can be easily generated with different numbers of points for
benchmarking/profiling and improving performance of dygraphs. Data to plot:
- sinusoid function
- random points
Number of points: -
+Number of series: -
+Roll period (in points): -
+Repetitions:
@@ -46,9 +48,9 @@ var plotDiv = document.getElementById('plot'); plotDiv.innerHTML = 'Redrawing...'; var numPoints = - parseInt(document.getElementById('num_points_input').value); + parseInt(document.getElementById('points').value); var numSeries = - parseInt(document.getElementById('num_series_input').value); + parseInt(document.getElementById('series').value); var repetitions = parseInt(document.getElementById('repetitions').value); @@ -77,7 +79,7 @@ labels.push("data-set-" + j); } var rollPeriod = parseInt( - document.getElementById('roll_period_input').value); + document.getElementById('rollPeriod').value); var opts = {labels: labels, rollPeriod: rollPeriod, timingName: "x"}; var millisecondss = []; for (var i = 0; i < repetitions; i++) { @@ -118,12 +120,49 @@ clickedRadioButton = function(radiobutton) { dataType = radiobutton.value; }; - - document.getElementById('num_points_input').value = '100'; - document.getElementById('num_series_input').value = '1'; - document.getElementById('roll_period_input').value = '1'; - document.getElementById('repetitions').value = '1'; + var values = { + points: 100, + series: 1, + rollPeriod: 1, + repetitions: 1, + type: 'sine' + }; + + // Parse the URL for parameters. Use it to override the values hash. + var href = window.location.href; + var qmindex = href.indexOf('?'); + if (qmindex > 0) { + var entries = href.substr(qmindex + 1).split('&'); + for (var idx = 0; idx < entries.length; idx++) { + var entry = entries[idx]; + var eindex = entry.indexOf('='); + if (eindex > 0) { + values[entry.substr(0, eindex)] = entry.substr(eindex + 1); + } + } + } + + var populate = function(name) { + document.getElementById(name).value = values[name]; + } + + var populateRadio = function(name) { + var val = values[name]; + var elem = document.getElementById(val); + elem.checked = true; + elem.onclick(); + } + + populate('points'); + populate('series'); + populate('rollPeriod'); + populate('repetitions'); + populateRadio('type'); + if (values["go"]) { + updatePlot(); + } +