Advertisement
dhshin

scatter_fin

Mar 20th, 2018
298
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 2.33 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.   <meta charset="utf-8">
  5.   <meta name="viewport" content="width=device-width">
  6.   <title>JS Bin</title>
  7.   <style>
  8.     svg {
  9.       font: 10px sans-serif;
  10.     }
  11.     .axis path,
  12.     .axis line {
  13.       fill: none;
  14.       stroke: #000;
  15.       shape-rendering: crispEdges;
  16.     }
  17.   </style>
  18. </head>
  19. <body>
  20.   <svg width="550" height="550">
  21.   </svg>
  22.   <p>
  23.     MEAN(width) = <span id="mean-width"></span>, MEAN(length) = <span id="mean-length"></span>
  24.   </p>
  25.   <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.3/d3.min.js"></script>
  26.  
  27.   <script>
  28.    
  29.     function ready(fn) {
  30.       if (document.readyState != 'loading'){
  31.         fn();
  32.       } else {
  33.         document.addEventListener('DOMContentLoaded', fn);
  34.       }
  35.     }
  36.  
  37.     ready(init);
  38.  
  39.     function init() {
  40.      
  41.       data.forEach(function(d) {
  42.         d.length = parseFloat(d.length);
  43.         d.width = parseFloat(d.width);
  44.       });
  45.      
  46.       let svg = d3.select('svg');
  47.       let width = 500;
  48.       let height = 500;
  49.      
  50.       let x = d3.scaleLinear()
  51.                 .domain([
  52.                   d3.min(data, d => d.width),
  53.                   d3.max(data, d => d.width)
  54.                 ])
  55.                 .range([50, width + 50]);
  56.       let y = d3.scaleLinear()
  57.                 .domain([
  58.                   d3.min(data, d => d.length),
  59.                   d3.max(data, d => d.length)
  60.                 ])
  61.                 .range([height, 0]);
  62.      
  63.       let color = d3.scaleOrdinal()
  64.                     .domain(['setosa', 'versicolor', 'virginica'])
  65.                     .range(['#3366cc', '#dc3912', '#ff9900']);
  66.      
  67.       svg
  68.         .selectAll('circle')
  69.         .data(data)
  70.         .enter()
  71.           .append('circle')
  72.           .attr('r', 3.5)
  73.           .attr('cx', d => x(d.width))
  74.           .attr('cy', d => y(d.length))
  75.           .style('fill', d => color(d.species));
  76.      
  77.       let xAxis = d3.axisBottom(x);
  78.       let yAxis = d3.axisLeft(y);
  79.      
  80.       svg
  81.         .append('g')
  82.         .attr('class', 'x axis')
  83.         .attr('transform', 'translate(0, ' + height + ')')
  84.         .call(xAxis);
  85.      
  86.       svg
  87.         .append('g')
  88.         .attr('class', 'y axis')
  89.         .attr('transform', 'translate(50, 0)')
  90.         .call(yAxis);
  91.      
  92.      
  93.     }
  94.    
  95.   </script>
  96. </body>
  97. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement