Search
 
SCRIPT & CODE EXAMPLE
 

JAVASCRIPT

d3 js date scatter plot

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width">
    <script src="https://d3js.org/d3.v4.min.js"></script>
    <title>Temperature Visualization</title>
    <style>
      body {
        margin: 0px;
      }
      .domain {
        display: none;
      }
      .tick line {
        stroke: #C0C0BB;
      }
      .tick text {
        fill: #8E8883;
        font-size: 20pt;
        font-family: sans-serif;
      }
      .axis-label {
        fill: #635F5D;
        font-size: 50pt;
        font-family: sans-serif;
      }
    </style>
  </head>
  <body>
    <svg width="960" height="500"></svg>
    <script>
      const xValue = d => d.timestamp;
      const xLabel = 'Time';
      const yValue = d => d.temperature;
      const yLabel = 'Temperature';
      const margin = { left: 120, right: 30, top: 20, bottom: 120 };

      const svg = d3.select('svg');
      const width = svg.attr('width');
      const height = svg.attr('height');
      const innerWidth = width - margin.left - margin.right;
      const innerHeight = height - margin.top - margin.bottom;

      const g = svg.append('g')
          .attr('transform', `translate(${margin.left},${margin.top})`);
      const xAxisG = g.append('g')
          .attr('transform', `translate(0, ${innerHeight})`);
      const yAxisG = g.append('g');

      xAxisG.append('text')
          .attr('class', 'axis-label')
          .attr('x', innerWidth / 2)
          .attr('y', 100)
          .text(xLabel);

      yAxisG.append('text')
          .attr('class', 'axis-label')
          .attr('x', -innerHeight / 2)
          .attr('y', -60)
          .attr('transform', `rotate(-90)`)
          .style('text-anchor', 'middle')
          .text(yLabel);

      const xScale = d3.scaleTime();
      const yScale = d3.scaleLinear();

      const xAxis = d3.axisBottom()
        .scale(xScale)
        .tickPadding(15)
        .tickSize(-innerHeight);

      const yAxis = d3.axisLeft()
        .scale(yScale)
        .ticks(5)
        .tickPadding(15)
        .tickSize(-innerWidth);

      const row = d => {
        d.timestamp = new Date(d.timestamp);
        d.temperature = +d.temperature;
        return d;
      };

      d3.csv('week_temperature_sf.csv', row, data => {
        xScale
          .domain(d3.extent(data, xValue))
          .range([0, innerWidth])
          .nice();

        yScale
          .domain(d3.extent(data, yValue))
          .range([innerHeight, 0])
          .nice();

        g.selectAll('circle').data(data)
          .enter().append('circle')
            .attr('cx', d => xScale(xValue(d)))
            .attr('cy', d => yScale(yValue(d)))
            .attr('fill-opacity', 0.6)
            .attr('r', 8);

        xAxisG.call(xAxis);
        yAxisG.call(yAxis);
      });
    </script>
  </body>
</html>
Comment

PREVIOUS NEXT
Code Example
Javascript :: pymxs naming nodes 
Javascript :: how to fetch devto api 
Javascript :: onScrollBottom 
Javascript :: swift urlsession remote json 
Javascript :: single data class value api respone 
Javascript :: javascript function counting cards 
Javascript :: onClick: share image on Facebook angular 9 
Javascript :: unminify javascript 
Javascript :: node fs get size 
Javascript :: buiding react project 
Javascript :: object wrappers in javascript 
Javascript :: desync resolver 
Javascript :: adonis model inheritance 
Javascript :: visual studio code shortcut to find file 
Javascript :: javascript reduce form object 
Javascript :: how to add github secrets in javascript 
Javascript :: javascript Check the answer 
Javascript :: angularjs GetVideos API, Cant get the key parameter inside the array 
Javascript :: How to add ui-scroll with remote data in angularjs 
Javascript :: angularjs Separate values in select containing 2 object 
Javascript :: HTTP Get with looping password validation not working 
Javascript :: Use of typescript generics for extended parametres 
Javascript :: the given sign-in provider is disabled for this firebase project 
Javascript :: socket.io authentication 
Javascript :: javascript check if key is keydown is charcter 
Javascript :: Clear for me API jquery 
Javascript :: Saving dependencies in your node package.json syntax 
Javascript :: testing code through local server using express.js 
Javascript :: difference between push and pop in javascript 
Javascript :: ...args javascript 
ADD CONTENT
Topic
Content
Source link
Name
9+4 =