/* From http://stackoverflow.com/a/10284006/223092 */ function zip(arrays) { return arrays[0].map(function(_,i){ return arrays.map(function(array){return array[i]}) }); } $(document).ready(function() { $.each(graphs_data, function(index, graph_data) { var graph_id = graph_data.id, dataset, plot, graph_data, graph_div = $('#' + graph_id), previousPoint = null; if (!graph_data.x_values) { /* Then there's no data for this graph */ return true; } graph_div.css('width', '700px'); graph_div.css('height', '600px'); dataset = [ {'color': 'orange', 'bars': { 'show': true, 'barWidth': 0.5, 'align': 'center' }, 'data': zip([graph_data.x_values, graph_data.y_values]) } ] if (graph_data.errorbars) { dataset.push({ 'color': 'orange', 'points': { // Don't show these, just draw error bars: 'radius': 0, 'errorbars': 'y', 'yerr': { 'asymmetric': true, 'show': true, 'upperCap': "-", 'lowerCap': "-", 'radius': 5 } }, 'data': zip([graph_data.x_values, graph_data.y_values, graph_data.cis_below, graph_data.cis_above]) }); } options = { 'grid': { 'hoverable': true, 'clickable': true }, 'xaxis': { 'ticks': graph_data.x_ticks, 'rotateTicks': 90 }, 'yaxis': { 'min': 0, 'max': graph_data.y_max }, 'xaxes': [{ 'axisLabel': graph_data.x_axis, 'axisLabelPadding': 20, 'axisLabelColour': 'black' }], 'yaxes': [{ 'axisLabel': graph_data.y_axis, 'axisLabelPadding': 20, 'axisLabelColour': 'black' }], 'series': { 'lines': { 'show': false } }, } plot = $.plot(graph_div, dataset, options); graph_div.bind("plotclick", function(event, pos, item) { var i, pb, url, name; if (item) { i = item.dataIndex; pb = graph_data.public_bodies[i]; url = pb.url; name = pb.name; window.location.href = url; } }); /* This code is adapted from: http://www.flotcharts.org/flot/examples/interacting/ */ function showTooltip(x, y, contents) { $('