Backups Created:
/home/japatmex/public_html/wp-content/edit-wolf.php
Savvy
W
olf -
MANAGER
Edit File: donut_update.js
/* ------------------------------------------------------------------------------ * * # D3.js - donut chart update animation * * Demo d3.js donut chart setup with .tsv data source and update animation * * ---------------------------------------------------------------------------- */ // Setup module // ------------------------------ var D3PieDonutUpdateAnimation = function() { // // Setup module components // // Chart var _pieDonutUpdateAnimation = function() { if (typeof d3 == 'undefined') { console.warn('Warning - d3.min.js is not loaded.'); return; } // Main variables var element = document.getElementById('d3-donut-update'), radius = 120; // Initialize chart only if element exsists in the DOM if(element) { // Basic setup // ------------------------------ // Colors var color = d3.scale.category20c(); // Create chart // ------------------------------ // Add SVG element var container = d3.select(element).append("svg"); // Add SVG group var svg = container .attr("width", radius * 2) .attr("height", radius * 2) .append("g") .attr("transform", "translate(" + radius + "," + radius + ")"); // Construct chart layout // ------------------------------ // Arc var arc = d3.svg.arc() .outerRadius(radius) .innerRadius(radius / 1.75); // Pie var pie = d3.layout.pie() .value(function(d) { return d.lemons; }) .sort(null); // Load data // ------------------------------ d3.tsv("../../../../global_assets/demo_data/d3/pies/donuts_update.tsv", function(error, data) { // Pull out values data.forEach(function(d) { d.lemons = +d.lemons || 0; d.melons = +d.melons || 0; }); // // Append chart elements // // Bind data var path = svg.datum(data).selectAll("path") .data(pie) .enter() .append("path") .attr("fill", function(d, i) { return color(i); }) .attr("d", arc) .attr("class", "d3-slice-border") .each(function(d) { this._current = d; }); // store the initial angles // Apply change event d3.selectAll(".donut-radios input").on("change", change); // Change values on page load var timeout = setTimeout(function() { d3.select("input[value=\"melons\"]").property("checked", true).each(change); }, 2000); // Change values function change() { var value = this.value; clearTimeout(timeout); pie.value(function(d) { return d[value]; }); // change the value function path = path.data(pie); // compute the new angles path.transition().duration(750).attrTween("d", arcTween); // redraw the arcs } }); // Store the displayed angles in _current. // Then, interpolate from _current to the new angles. // During the transition, _current is updated in-place by d3.interpolate. function arcTween(a) { var i = d3.interpolate(this._current, a); this._current = i(0); return function(t) { return arc(i(t)); }; } } }; // // Return objects assigned to module // return { init: function() { _pieDonutUpdateAnimation(); } } }(); // Initialize module // ------------------------------ document.addEventListener('DOMContentLoaded', function() { D3PieDonutUpdateAnimation.init(); });