| <!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> |