JSFiddle - React, Tailwind, and code Playground
by mejt
HTML
<script src="https://fastcdn.org/FileSaver.js/1.1.20151003/FileSaver.min.js"></script>
<script src="https://d3js.org/d3.v3.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ammaps/3.13.0/exporting/canvg.js"></script>
<div id="chart"></div>
<button id="download-jpg">Export to PNG</button>
JavaScript
(function (d3, saveAs) {
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();
var exportButton = document.getElementById('download-jpg');
addDomains();
addValueLine();
addAxes();
addMouseAction();
exportButton.addEventListener('click', exportToPng);
function addSvg() {
return d3.select("#chart")
.append("svg")
.attr("width", width + margin.left + margin.right)
...