UNPKG

dc

Version:

A multi-dimensional charting library built to work natively with crossfilter and rendered using d3.js

75 lines (66 loc) 2.7 kB
<!DOCTYPE html> <html lang="en"> <head> <title>dc.js - Pie Chart Transition Tester</title> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css"> <link rel="stylesheet" type="text/css" href="../css/dc.css"/> </head> <body> <div class="container"> <script type="text/javascript" src="../examples/header.js"></script> <div id="test"></div> <button class="btn" onclick="transitionTest.stop()">stop</button> <button class="btn" onclick="button1()">little</button> <button class="btn" onclick="button2()">keep 2</button> <button class="btn" onclick="button3()">keep 4</button> <script type="text/javascript" src="../js/d3.js"></script> <script type="text/javascript" src="../js/crossfilter.js"></script> <script type="text/javascript" src="../js/dc.js"></script> <script type="text/javascript" src="transition-test.js"></script> <script type="text/javascript"> var chart = dc.pieChart("#test"); var stop, button1, button2, button3; d3.csv("../examples/morley.csv", function(error, experiments) { var ndx = crossfilter(experiments), runDimension = ndx.dimension(function(d) {return "run-"+d.Run;}), speedSumGroup = runDimension.group().reduceSum(function(d) {return d.Speed * d.Run;}); chart .transitionDuration(transitionTest.duration) .width(768) .height(480) .slicesCap(4) .innerRadius(100) .externalLabels(50) .externalRadiusPadding(50) .drawPaths(true) .dimension(runDimension) .group(speedSumGroup) .legend(dc.legend()); chart.render(); var expDim = ndx.dimension(function(d) { return d.Expt; }); var run2 = ndx.dimension(function(d) { return "run-"+d.Run;}); window.button1 = transitionTest.oscillate(function() { expDim.filter(2); }, function() { expDim.filter(); }); window.button2 = transitionTest.oscillate(function() { run2.filterFunction(function(d) { return ["run-19", "run-2"].indexOf(d) != -1; }); }, function() { run2.filter(); }); window.button3 = transitionTest.oscillate(function() { run2.filterFunction(function(d) { return ["run-3", "run-5", "run-7", "run-9"].indexOf(d) != -1; }); }, function() { run2.filter(); }); }); </script> </div> </body> </html>