UNPKG

nvd3

Version:

A reusable charting library written in d3.js

144 lines (122 loc) 4.04 kB
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link href="../build/nv.d3.css" rel="stylesheet" type="text/css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.17/d3.min.js" charset="utf-8"></script> <script src="../build/nv.d3.js"></script> <script src="lib/stream_layers.js"></script> <style> text { font: 12px sans-serif; } svg { display: block; float: left; height: 350px !important; width: 350px !important; } html, body { margin: 0px; padding: 0px; height: 100%; width: 100%; } </style> </head> <body class='with-3d-shadow with-transitions'> <svg id="test1" class="mypiechart"></svg> <svg id="test2" class="mypiechart"></svg> <script> var testdata = [ {key: "One", y: 5, color: "#5F5"}, {key: "Two", y: 2}, {key: "Three", y: 9}, {key: "Four", y: 7}, {key: "Five", y: 4}, {key: "Six", y: 3}, {key: "Seven", y: 0.5} ]; var testdata2 = [ {key: "One", y: 5}, {key: "Two", y: 2}, {key: "Three", y: 9}, {key: "Four", y: 7}, {key: "Five", y: 4}, {key: "Six", y: 3}, {key: "Seven", y: 0.5} ]; var height = 350; var width = 350; nv.addGraph(function() { var chart = nv.models.pieChart() .x(function(d) { return d.key }) .y(function(d) { return d.y }) .width(width) .height(height) .showTooltipPercent(true); d3.select("#test1") .datum(testdata2) .transition().duration(1200) .attr('width', width) .attr('height', height) .call(chart); // update chart data values randomly setInterval(function() { testdata2[0].y = Math.floor(Math.random() * 10); testdata2[1].y = Math.floor(Math.random() * 10); chart.update(); }, 4000); return chart; }); nv.addGraph(function() { var chart = nv.models.pieChart() .x(function(d) { return d.key }) .y(function(d) { return d.y }) //.labelThreshold(.08) //.showLabels(false) .color(d3.scale.category20().range().slice(8)) .growOnHover(false) .labelType('value') .width(width) .height(height); // make it a half circle chart.pie .startAngle(function(d) { return d.startAngle/2 -Math.PI/2 }) .endAngle(function(d) { return d.endAngle/2 -Math.PI/2 }); // MAKES LABELS OUTSIDE OF PIE/DONUT //chart.pie.donutLabelsOutside(true).donut(true); // LISTEN TO CLICK EVENTS ON SLICES OF THE PIE/DONUT // chart.pie.dispatch.on('elementClick', function() { // code... // }); // chart.pie.dispatch.on('chartClick', function() { // code... // }); // LISTEN TO DOUBLECLICK EVENTS ON SLICES OF THE PIE/DONUT // chart.pie.dispatch.on('elementDblClick', function() { // code... // }); // LISTEN TO THE renderEnd EVENT OF THE PIE/DONUT // chart.pie.dispatch.on('renderEnd', function() { // code... // }); // OTHER EVENTS DISPATCHED BY THE PIE INCLUDE: elementMouseover, elementMouseout, elementMousemove // @see nv.models.pie d3.select("#test2") .datum(testdata) .transition().duration(1200) .attr('width', width) .attr('height', height) .call(chart); // disable and enable some of the sections var is_disabled = false; setInterval(function() { chart.dispatch.changeState({disabled: {2: !is_disabled, 4: !is_disabled}}); is_disabled = !is_disabled; }, 3000); return chart; }); </script> </body> </html>