--- a/labs/myway_timeliness.php +++ b/labs/myway_timeliness.php @@ -6,7 +6,7 @@ <!--[if lte IE 8]><script language="javascript" type="text/javascript" src="../js/flot/excanvas.min.js"></script><![endif]--> <script language="javascript" type="text/javascript" src="../js/flot/jquery.flot.js"></script> - <div id="placeholder" style="width:1000px;height:600px"></div> + <center><div id="placeholder" style="width:900px;height:550px"></div></center> <script type="text/javascript"> $(function () { var d = new Date(); @@ -26,16 +26,16 @@ $labels = Array(); $lastRoute = ""; foreach ($query->fetchAll() as $delta) { - $routeName = $delta['route_full_name']; - if (strstr($routeName," 3")) $routeName = "312-319"; - else $routeName = preg_replace('/\D/', '', $routeName); - if ($routeName != $lastRoute) { - $i++; - echo " var d$i = [];"; - $lastRoute = $routeName; - $labels[$i] = $routeName; - } - echo "d$i.push([ midnight+ (1000*" . midnight_seconds(strtotime($delta['time'])) . "), {$delta['timing_delta']}]); \n"; + $routeName = $delta['route_full_name']; + if (strstr($routeName, " 3")) $routeName = "312-319"; + else $routeName = preg_replace('/\D/', '', $routeName); + if ($routeName != $lastRoute) { + $i++; + echo " var d$i = [];"; + $lastRoute = $routeName; + $labels[$i] = $routeName; + } + echo "d$i.push([ midnight+ (1000*" . midnight_seconds(strtotime($delta['time'])) . "), ".intval($delta['timing_delta'])."]); \n"; }; ?> @@ -44,13 +44,13 @@ var plot = $.plot(placeholder, [ <?php foreach ($labels as $key => $label) { - echo " { + echo " { data: d$key, points: { show: true }, label: '$label' },"; } - ?> +?> ], { xaxis: { @@ -61,17 +61,18 @@ yaxis: { tickFormatter: yformatter }, - grid: { hoverable: true, clickable: true }, + grid: { hoverable: true, clickable: true, labelMargin: 32 }, }); var o; o = plot.pointOffset({ x: midnight+ (9*60*60*1000), y: -1.2}); placeholder.append('<div style="position:absolute;left:' + (o.left + 4) + 'px;top:' + o.top + 'px;color:#666;font-size:smaller">9am</div>'); - o = plot.pointOffset({ x: midnight+ (16*60*60*1000), y: -1.2}); + o = plot.pointOffset({ x: midnight+ (16*60*60*1000), y: -1.2}); placeholder.append('<div style="position:absolute;left:' + (o.left + 4) + 'px;top:' + o.top + 'px;color:#666;font-size:smaller">4pm</div>'); }); function yformatter(v) { - return Math.floor(v/60) + " minutes " + (v == 0 ? "" : (v >0 ? "early":"late")) + if (Math.floor(v/60) < -9) return ""; + return Math.abs(Math.floor(v/60)) + " min " + (v == 0 ? "" : (v >0 ? "early":"late")) } function showTooltip(x, y, contents) { $('<div id="tooltip">' + contents + '</div>').css( { @@ -105,7 +106,7 @@ showTooltip(item.pageX, item.pageY, - item.series.label + " at "+ time +" = " + y +" ( "+ y/60+" minutes )"); + item.series.label + " at "+ time +" = " + Math.abs(new Number(y/60).toFixed(2))+" minutes "+(y >0 ? "early":"late")); } } else {