UNPKG

dc

Version:

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

80 lines (65 loc) 2.85 kB
<!DOCTYPE html> <html lang="en"> <head> <title>dc.js - Series Example</title> <meta charset="UTF-8"> <link rel="stylesheet" type="text/css" href="../css/dc.css"/> <link rel="stylesheet" type="text/css" href="dc-resizing.css" /> </head> <body> <div id="test"></div> <button class="btn" onclick="button1()">1</button> <button class="btn" onclick="button2()">2</button> <button class="btn" onclick="button3()">3</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="dc-resizing.js"></script> <script type="text/javascript"> var chart = dc.seriesChart("#test"); var ndx, runDimension, runGroup; d3.csv("../examples/morley.csv", function(error, experiments) { ndx = crossfilter(experiments); runDimension = ndx.dimension(function(d) {return [+d.Expt, +d.Run]; }); runGroup = runDimension.group().reduceSum(function(d) { return +d.Speed; }); var adjustX = 10, adjustY = 40; chart .width(window.innerWidth-adjustX) .height(window.innerHeight-adjustY) .chart(function(c) { return dc.lineChart(c).interpolate('cardinal'); }) .x(d3.scale.linear().domain([0,20])) .brushOn(false) .yAxisLabel("Measured Speed km/s") .xAxisLabel("Run") .clipPadding(10) .elasticY(true) .dimension(runDimension) .group(runGroup) .mouseZoomable(true) .seriesAccessor(function(d) {return "Expt: " + d.key[0];}) .keyAccessor(function(d) {return +d.key[1];}) .valueAccessor(function(d) {return +d.value - 500;}); chart.legend(dc.legend().x(window.innerWidth-200).y(0).itemHeight(13).gap(5) .horizontal(1).legendWidth(140).itemWidth(70)); chart.yAxis().tickFormat(function(d) {return d3.format(',d')(d+299500);}); chart.margins().left += 40; apply_resizing(chart, adjustX, adjustY, function(chart) { chart.legend().x(window.innerWidth-200); }); dc.renderAll(); }); function load_button(file) { return function load_it() { d3.csv(file, function(error, experiments) { ndx.remove(); ndx.add(experiments); dc.redrawAll(); }); }; } var button1 = load_button("../examples/morley.csv"), button2 = load_button("../examples/morley2.csv"), button3 = load_button("../examples/morley3.csv"); </script> </body> </html>