JSFiddle - React, Tailwind, and code Playground

by mejt

HTML

<script src="https://d3js.org/d3.v3.min.js"></script>

CSS

body { font: 12px Verdana;}
path { 
  stroke: steelblue;
  stroke-width: 2;
  fill: none;
}
.axis path, .axis line {
	fill: none;
	stroke: grey;
	stroke-width: 1;
}

JavaScript

var data = [
  {"y":0.5074666906113496,"x":"2017-03-20T23:00:00.000Z"},
  {"y":0.9527321029510436,"x":"2017-03-21T00:00:00.000Z"},
  {"y":0.7600950959703447,"x":"2017-03-21T01:00:00.000Z"},
  {"y":0.20580227686108898,"x":"2017-03-21T02:00:00.000Z"},
  {"y":0.5733164708745364,"x":"2017-03-21T03:00:00.000Z"},
  {"y":0.7564259320114604,"x":"2017-03-21T04:00:00.000Z"},
  {"y":0.6267454112244419,"x":"2017-03-21T05:00:00.000Z"},
  {"y":0.11944023054210295,"x":"2017-03-21T06:00:00.000Z"},
  {"y":0.9297418072540851,"x":"2017-03-21T07:00:00.000Z"},
  {"y":0.8884353531688012,"x":"2017-03-21T08:00:00.000Z"},
  {"y":0.5619578787536637,"x":"2017-03-21T09:00:00.000Z"},
  {"y":0.23583955393871814,"x":"2017-03-21T10:00:00.000Z"},
  {"y":0.2680568515809374,"x":"2017-03-21T11:00:00.000Z"},
  {"y":0.9129909442537631,"x":"2017-03-21T12:00:00.000Z"},
  {"y":0.80968968597973014,"x":"2017-03-21T13:00:00.000Z"},
  {"y":0.6812223330198619,"x":"2017-03-21T14:00:00.000Z"},
  {"y":0.8875838775047455,"x":"2017-03-21T15:00:00.000Z"},
  {"y":0.5664612526995818,"x":"2017-03-21T16:00:00.000Z"},
  {"y":0.4302245708963415,"x":"2017-03-21T17:00:00.000Z"},
  {"y":0.942675240989681,"x":"2017-03-21T18:00:00.000Z"}
];

var	margin = {top: 20, right: 20, bottom: 30, left: 50};
var width = 550 - margin.left - margin.right;
var height = 350 - margin.top - margin.bottom;
var	x = d3.time.scale().range([0, width]);
var	y = d3.scale.linear().range([height, 0]);
var	svg = addSvg();

addDomains();
addValueLine();
addAxes();
addMouseAction();

function addSvg() {
	return d3.select("body")
    .append("svg")
      .attr("width", width + margin.left + margin.right)
      .attr("height", height + margin.top + margin.bottom)
    .append("g")
      .attr("transform", "translate(" + margin.left + "," + margin.top + ")");
}

function addValueLine() {
	var valueline = d3.svg.line()
    .x(function(d) { return x(new Date(d.x)); })
    .y(function(d) { return y(d.y); });

  svg.append("path")	
    .attr("class", "line")
  ...