Advertisement
Guest User

Untitled

a guest
Apr 4th, 2015
344
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 3.42 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <meta charset="utf-8">
  3.  
  4. <link href="./styles/nv.d3.css" rel="stylesheet" type="text/css">
  5.  
  6. <style>
  7. body {
  8.   overflow-y:scroll;
  9.   margin: 0;
  10.   padding: 0;
  11. }
  12. svg {
  13.   overflow: hidden;
  14. }
  15. div {
  16.   border: 0;
  17.   margin: 0;
  18. }
  19.  
  20.  .hidden-point
  21.  {
  22.   visibility: none;
  23.  }
  24.  
  25.  #chart svg {
  26.   height: 400px;
  27. }
  28.  
  29.  
  30. </style>
  31.  
  32. <body>
  33.  
  34. <div id="chart">
  35.   <svg></svg>
  36. </div>
  37.  
  38. <p>
  39.   <label for="nRadius"
  40.         style="display: inline-block; width: 240px; text-align: right">
  41.          radius = <span id="nRadius-value"></span>
  42.   </label>
  43.   <input type="range" min="0" max="101" id="nRadius">
  44. </p>
  45.  
  46. <!--<script src="../lib/fisheye.js"></script>-->
  47. <script src="http://d3js.org/d3.v2.min.js" charset="utf-8"></script>
  48. <script src="./scripts/nv.d3.min.js"></script>
  49. <script src="./scripts/nvd3/src/tooltip.js"></script>
  50. <script src="./scripts/nvd3/src/utils.js"></script>
  51. <script src="./scripts/nvd3/src/models/legend.js"></script>
  52. <script src="./scripts/nvd3/src/models/axis.js"></script>
  53. <script src="./scripts/nvd3/src/models/distribution.js"></script>
  54. <script src="./scripts/nvd3/src/models/scatter.js"></script>
  55. <script src="./scripts/nvd3/src/models/scatterChart.js"></script>
  56. <script src="nvd3data.json" type="text/javascript"></script>
  57. <script src="./scripts/jquery.js"></script>
  58. <script>
  59. //Format A
  60. dataset.forEach(function(d){
  61.       d.x = +d.x;
  62.       d.y = +d.y;
  63.       d.shape = +d.shape;
  64.       d.size = +d.size;
  65.     });
  66.  
  67. var chart = null;
  68. var nRadiusMagic = 101;
  69.  
  70. nv.addGraph(function() {
  71.    chart = nv.models.scatterChart()
  72.                 .showDistX(false)
  73.                 .showDistY(false)
  74.                 .showLegend(true)
  75.                 .color(d3.scale.category10().range())
  76.                 .tooltipContent(function(key,y,x,graph) {
  77.                     return '<h3>' + graph.series.values[graph.pointIndex].label + '<h3>';});
  78.  
  79.   chart.xAxis.tickFormat(d3.format('.02f'));
  80.   chart.yAxis.tickFormat(d3.format('.02f'));
  81.  
  82. d3.selectAll('.nv-point').filter(function(d){ return d.shape === 'circle' })
  83.   .classed('hidden-point', true)
  84.  
  85.  
  86.  
  87.  chart.scatter.dispatch.on("elementClick", function(e) {
  88.     url = e.series.values[e.pointIndex].url;
  89.     //newwindow=window.open(url,'name','height=300,width=350');
  90.     //if (window.focus) {newwindow.focus()}
  91.     d3.select("#"+e.pointIndex).classed('hidden-point',true)
  92.     return false;
  93. });
  94.  
  95.  d3.select("#nRadius").on("input", function() {update(+this.value);});
  96.  
  97.  
  98.   nv.utils.windowResize(chart.update);
  99.  
  100.   update(nRadiusMagic);
  101.  
  102.   return chart;
  103. });
  104.  
  105. function clone (obj) {
  106.     return JSON.parse(JSON.stringify(obj));
  107. }
  108.  
  109. function update(nRadius) {
  110.  
  111.    // adjust the text on the range slider
  112.   d3.select("#nRadius-value").text(nRadius == nRadiusMagic ? 'All' : nRadius/100);
  113. //  d3.select("#nRadius").property("value", );
  114.  
  115.   function filterDataset(dataset, radius) {
  116.     return dataset
  117.         .map(function (group) {
  118.             var gcopy = clone(group);
  119.             gcopy.values = gcopy.values.filter(function (d) {
  120.                 console.log(d)
  121.                 return d.size < radius;
  122.            });
  123.            return gcopy;
  124.        })
  125.        .filter(function (group) {
  126.            return group.values.length > 0;
  127.         })
  128.   }
  129.  
  130.   d3.select('#chart svg')
  131.       .datum(nRadius ==  nRadiusMagic ? dataset : filterDataset(dataset, nRadius/100))
  132.       .transition().duration(1000)
  133.       .call(chart);
  134.   };
  135. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement