X-Git-Url: https://nos-oignons.net/gitweb/website.git/blobdiff_plain/4c2924543ea0f426c3342fe8430ca606a6dbc85c..refs/heads/d3:/assets/weights_graphs.js diff --git a/assets/weights_graphs.js b/assets/weights_graphs.js index 915a8b8..5ed7cb1 100644 --- a/assets/weights_graphs.js +++ b/assets/weights_graphs.js @@ -11,31 +11,27 @@ WeightsDrawer.margin = {top: 50, right: 10, bottom: 90, left: 130}; WeightsDrawer.width = 600 - WeightsDrawer.margin.left - WeightsDrawer.margin.right; WeightsDrawer.height = 400 - WeightsDrawer.margin.top - WeightsDrawer.margin.bottom; -WeightsDrawer.parseTime = d3.time.format("%Y-%m-%d %H:%M:%S").parse; -WeightsDrawer.percentFormatter = d3.format(".2%"); +WeightsDrawer.parseTime = d3.timeParse("%Y-%m-%d %H:%M:%S"); +WeightsDrawer.percentFormatter = d3.format("2%"); -WeightsDrawer.x = d3.time.scale() +WeightsDrawer.x = d3.timeDay .range([0, WeightsDrawer.width]); -WeightsDrawer.y = d3.scale.linear() +WeightsDrawer.y = d3.scaleLinear() .range([WeightsDrawer.height, 0]); -WeightsDrawer.xAxis = d3.svg.axis() - .scale(WeightsDrawer.x) - .orient("bottom"); +WeightsDrawer.xAxis = d3.axisBottom(WeightsDrawer.x); -WeightsDrawer.yAxis = d3.svg.axis() - .scale(WeightsDrawer.y) - .orient("left") +WeightsDrawer.yAxis = d3.axisLeft(WeightsDrawer.y) .tickFormat(function(d) { return (d == 0) ? "" : WeightsDrawer.percentFormatter(d); }); -WeightsDrawer.area = d3.svg.area() +WeightsDrawer.area = d3.area() .x(function(d) { return WeightsDrawer.x(d.date); }) .y0(function(d) { return WeightsDrawer.y(d.y0); }) .y1(function(d) { return WeightsDrawer.y(d.y0 + d.y); }); -WeightsDrawer.stack = d3.layout.stack() - .values(function(d) { return d.values; }); +WeightsDrawer.stack = d3.stack() + .value(function(d) { return d.values; }); WeightsDrawer.onionoo_url = "https://onionoo.torproject.org/weights?type=relay&contact=adminsys@nos-oignons.net"; @@ -68,7 +64,7 @@ WeightsDrawer.extract_values = function(history, interval, minTime, maxTime) { return values; } -WeightsDrawer.color = d3.scale.ordinal(); +WeightsDrawer.color = d3.scaleOrdinal(); WeightsDrawer.color.domain(nos_oignons_relays.map(function(r) {return r.fingerprint})); WeightsDrawer.color.range(nos_oignons_relays.map(function(r) {return r.color})); @@ -83,6 +79,7 @@ WeightsDrawer.prototype.draw_weights_graph = function(raw_data) { }); var form_source = d3.select(drawer.selector).append("form") + .attr("id", "weight-sources") .attr("action", "#"); WeightsDrawer.sources.forEach(function(s) { var div = form_source.append("div"); @@ -106,16 +103,17 @@ WeightsDrawer.prototype.draw_weights_graph = function(raw_data) { .attr("transform", "translate(" + WeightsDrawer.margin.left + "," + WeightsDrawer.margin.top + ")"); var form_period = d3.select(drawer.selector).append("form") + .attr("class", "graph-period") .attr("action", "#"); WeightsDrawer.periods.forEach(function(p) { var div = form_period.append("div"); var radio = div.append("input") .attr("type", "radio") .attr("name", "period") - .attr("id", "period_" + p.id) + .attr("id", "weights_period_" + p.id) .on("click", function() { drawer.update_period(p.id); }); div.append("label") - .attr("for", "period_" + p.id) + .attr("for", "weights_period_" + p.id) .text(p.label); if (p.id == WeightsDrawer.periods[0].id) { radio.attr("checked", true); @@ -240,7 +238,8 @@ WeightsDrawer.prototype.update_period = function(period) { WeightsDrawer.prototype.draw = function() { var drawer = this; - d3.json(WeightsDrawer.onionoo_url, function(error, raw_data) { + d3.json(WeightsDrawer.onionoo_url) + .then(function(raw_data) { d3.select(drawer.selector).text(""); drawer.draw_weights_graph(raw_data); });