From 51be9ed2d1bc74b313a4fc5d632c8242fab54d03 Mon Sep 17 00:00:00 2001 From: Gregory Eremin Date: Sun, 10 Jan 2016 17:29:09 +0300 Subject: [PATCH] Add axises to line chart --- dashboard/js/app.jsx | 87 ++++++++++++++++++++++++++++++-------------- 1 file changed, 60 insertions(+), 27 deletions(-) diff --git a/dashboard/js/app.jsx b/dashboard/js/app.jsx index 689b330..238cb26 100644 --- a/dashboard/js/app.jsx +++ b/dashboard/js/app.jsx @@ -179,11 +179,17 @@ var BoxPlot = React.createClass({ var LineChart = React.createClass({ render: function() { - var points = this.props.points, - maxHeight = 130, - padding = 3; + var width = 950, + height = 120, + paddingLeft = 30, + paddingTop = 10, + paddingBottom = 20; - var min = 0, max; + var points = this.props.points, + maxHeight = height - paddingTop - paddingBottom, + padding = 30; + + var min = 0, max = 0; points.map(function(point) { if (max === undefined || point.processed > max) { max = point.processed; @@ -195,49 +201,76 @@ var LineChart = React.createClass({ return; } - var path = points.map(function(point, i) { + var npoints = points.map(function(point, i) { var val = point[key]; var width = 15; var x = i * width + padding; - var y = maxHeight - Math.round((val-min)/(max-min) * maxHeight) + 16; + var y = maxHeight - Math.round((val-min)/(max-min) * maxHeight) + paddingTop; + + return [x, y]; + }); + + var path = npoints.map(function(point, i) { + var x = point[0], y = point[1]; if (i === 0) { return "M"+x+","+y; } else { return "L"+x+","+y; } + }).join(" "); + + var dots = npoints.map(function(point, i) { + var x = point[0], y = point[1]; + + var r = 2; // Radius + + return }); return ( - + + + {dots} + ); }; + // TODO: Define magic numbers from below here + var yMaxX = paddingLeft - 3, + yMaxY = paddingTop + 5, + xLabel1x = paddingLeft, + xLabel2x = paddingLeft + 15 * 6; + + var xlabels = Array.apply(null, Array(10)).map(function(_, i){ + return + {"-"+ (10-i) + "m"} + + }); + return (
{makePath(points, "processed")} {makePath(points, "errors")} - - - - + + + {max} + 0 + + + now + {xlabels}
);