<!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> <div style='position:relative;' class='with-transitions'> <h3>Scatter chart tests</h3> <div class='navigation'> Tests: <a href="lineChartTest.html">Line Chart</a> <a href="stackedAreaChartTest.html">Stacked Area</a> <a href="../examples/cumulativeLineChart.html">Cumulative Line</a> <a href="ScatterChartTest.html">Scatter</a> <a href="interactiveBisectTest.html">nv.interactiveBisect unit tests</a> </div> <div id="test1" class="chart third"> Normal - four series', all random (40 points) <button>Select chart</button> <svg></svg> </div> <div id="test2" class="chart third"> Normal - one series', all random (5 points), zero left margin <button>Select chart</button> <svg></svg> </div> <div id="test3" class="chart third"> Zero right margin, 200 points <button>Select chart</button> <svg></svg> </div> <div id="test4" class="chart third"> Bigger margins <button>Select chart</button> <svg></svg> </div> <div id="test5" class="chart third"> Zero data points <button>Select chart</button> <svg></svg> </div> <div id="test6" class="chart third"> One point. <button>Select chart</button> <svg></svg> </div> <div id="test7" class="chart third"> Two points <button>Select chart</button> <svg></svg> </div> <div id="test8" class="chart third"> Three series', one point each <button>Select chart</button> <svg></svg> </div> <div id="test9" class="chart third"> Three series', first one has zero points <button>Select chart</button> <svg></svg> </div> <div id="test10" class="chart third"> Lots of series <button>Select chart</button> <svg></svg> </div> <div id="test11" class="chart third"> Scatter plus line: y=2x + 0 <button>Select chart</button> <svg></svg> </div> <div id="test12" class="chart third"> Scatter plus line: y=2x + 10; <button>Select chart</button> <svg></svg> </div> <div id="test13" class="chart third"> Scatter plus line: y=-0.5x + 1.0; <button>Select chart</button> <svg></svg> </div> <div id="test14" class="chart third"> Scatter chart: duplicate y values <button>Select chart</button> <svg></svg> </div> <div id="test15" class="chart third"> Scatter chart: duplicate x values <button>Select chart</button> <svg></svg> </div> <div id="test16" class="chart third"> Scatter chart: extremely small data points (1e-10) <button>Select chart</button> <svg></svg> </div> </div> <script src="../lib/d3.v3.js"></script> <!--<script src="../lib/fisheye.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/distribution.js"></script> <script src="../src/models/scatter.js"></script> <script src="../src/models/scatterChart.js"></script> <script src="../src/models/scatterPlusLineChart.js"></script> <script src="testScript.js"></script> <script> defaultChartTest("test1", randomData(4,40)); defaultChartTest("test2", randomData(1,5), {left:0}); defaultChartTest("test3", randomData(2,200), {right: 0}); defaultChartTest("test4", randomData(2, 8), {top:40, right: 90, bottom: 150, left: 150}); defaultChartTest("test5", randomData(0,0)); defaultChartTest("test6", randomData(1,1)); defaultChartTest("test7", randomData(1,2)); defaultChartTest("test8", randomData(3,1)); defaultChartTest("test9", [ {key: "Group 0", values: []}, {key: "Group 1", values: [{x:1, y:1}]} ]); defaultChartTest("test10", randomData(30,2)); scatterPlusLineTest("test11", randomDataSloped(2,0)); scatterPlusLineTest("test12", randomDataSloped(2,10)); scatterPlusLineTest("test13", randomDataSloped(-0.5,1)); defaultChartTest("test14", [ {key: "Duplicate Y", values: [ {x: 0, y: 10}, {x:1, y:10},{x:2, y:10},{x:3, y:10} ] } ]); defaultChartTest("test15",[ {key: "Duplicate X", area: true, values: [ {x: 4, y: 10}, {x: 4, y: 11}, {x: 4, y: 12}, {x: 4, y: 13} ] } ]); defaultChartTest("test16",tinyPoints()); function defaultChartTest(container, data, margin) { nv.addGraph(function() { var chart; chart = nv.models.scatterChart() .showDistX(true).showDistY(true) ; chart.xAxis.tickFormat(d3.format('.02f')); chart.yAxis.tickFormat(d3.format('.02f')); if (margin) { chart.margin(margin); } chart.tooltipContent(function(key) { return "<h3>" + key + "</h3>"; }); d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart); nv.utils.windowResize(chart.update); return chart; }); } function scatterPlusLineTest(container, data) { nv.addGraph(function() { var chart; chart = nv.models.scatterPlusLineChart() .showDistX(true).showDistY(true); chart.xAxis.tickFormat(d3.format('.02f')); chart.yAxis.tickFormat(d3.format('.02f')); chart.tooltipContent(function(key) { return "<h3>" + key + "</h3>"; }); d3.select('#' + container + ' svg').datum(data).transition().duration(500).call(chart); nv.utils.windowResize(chart.update); return chart; }); } function randomData(groups, points) { //# groups,# points per group var data = [], shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'], random = d3.random.normal(); for (i = 0; i < groups; i++) { data.push({ key: 'Group ' + i, values: [] }); for (j = 0; j < points; j++) { data[i].values.push({ x: random(), y: random(), size: Math.random(), shape: shapes[j % 6] }); } } return data; } function randomDataSloped(slope,intercept) { //# groups,# points per group var data = [], shapes = ['circle', 'cross', 'triangle-up', 'triangle-down', 'diamond', 'square'], random = d3.random.normal(); var groups = 2, points = 10; for (i = 0; i < groups; i++) { data.push({ key: 'Group ' + i, values: [], slope: slope, intercept: intercept }); for (j = 0; j < points; j++) { data[i].values.push({ x: random(), y: random(), size: Math.random(), shape: shapes[j % 6] }); } } return data; } function tinyPoints() { var rval = {key: "Tiny points", values: []}; for(var i =1; i < 20; i++) { rval.values.push({ x: Math.random() * 1e-10, y: Math.random() * 1e-10 }); } return [rval]; } </script>