<!DOCTYPE html> <meta charset="utf-8"> <link href="../src/nv.d3.css" rel="stylesheet" type="text/css"> <link href="teststyle.css" rel="stylesheet" type='text/css'> <body class='with-3d-shadow with-transitions'> <h3>Multibar chart test cases - feel free to add more tests</h3> <div class='navigation'> <a href="../examples/multiBar.html">Multibar Stream example</a> </div> <div class='chart half' id="chart1"> Normal chart, with transition delay, and bar color set. <svg></svg> </div> <div class='chart half' id="chart2"> Normal chart, no transitionDuration or delay, no bar color set. <svg></svg> </div> <div class='chart half' id="chart3"> Chart with single series, no group spacing. <svg></svg> </div> <div class='chart half' id="chart4"> Chart with 18 series, 7 data points per series. <svg></svg> </div> <div class='chart third' id="chart5"> Chart with 1 data point <svg></svg> </div> <div class='chart third' id="chart6"> Chart with 2 data points <svg></svg> </div> <div class='chart third' id="chart7"> Chart with 0 data points <svg></svg> </div> <script src="../lib/d3.v3.js"></script> <script src="../nv.d3.js"></script> <script src="../src/tooltip.js"></script> <script src="../src/utils.js"></script> <script src="../src/models/legend.js"></script> <script src="../src/models/axis.js"></script> <script src="../src/models/multiBar.js"></script> <script src="../src/models/multiBarChart.js"></script> <script> var negative_test_data = new d3.range(0,3).map(function(d,i) { return { key: 'Stream ' + i, values: new d3.range(0,11).map( function(f,j) { return { y: 10 + Math.random()*100 * (Math.floor(Math.random()*100)%2 ? 1 : -1), x: j } }) }; }); function dataFactory(seriesNum, perSeries) { return new d3.range(0,seriesNum).map(function(d,i) { return { key: 'Stream ' + i, values: new d3.range(0,perSeries).map( function(f,j) { return { y: 10 + Math.random()*100, x: j } }) }; }); } defaultChartConfig("chart1", negative_test_data, { barColor: d3.scale.category20().range(), delay: 1200, groupSpacing: 0.1, reduceXTicks: false, staggerLabels: true }); defaultChartConfig("chart2", dataFactory(3,11), { delay: 0, transitionDuration:0, groupSpacing: 0.2 }); defaultChartConfig("chart3",dataFactory(1,15),{ groupSpacing: 0, delay:0 }); defaultChartConfig("chart4",dataFactory(18,7),{ delay:800 }); defaultChartConfig("chart5",dataFactory(1,1),{ delay:0 }); defaultChartConfig("chart6",dataFactory(1,2),{ delay:0 }); defaultChartConfig("chart7",dataFactory(0,0),{ delay:0 }); function defaultChartConfig(containerId, data, chartOptions) { nv.addGraph(function() { var chart; chart = nv.models.multiBarChart() .margin({bottom: 100}) .transitionDuration(300) ; chart.options(chartOptions); chart.multibar .hideable(true); chart.xAxis .axisLabel("Current Index") .showMaxMin(true) .tickFormat(d3.format(',0f')); chart.yAxis .tickFormat(d3.format(',.1f')); d3.select('#' + containerId + ' svg') .datum(data) .call(chart); nv.utils.windowResize(chart.update); chart.dispatch.on('stateChange', function(e) { nv.log('New State:', JSON.stringify(e)); }); return chart; }); } </script>