JSFiddle - React, Tailwind, and code Playground
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/jspdf/1.3.4/jspdf.debug.js"></script>
<div id="chart"></div>
<button id="download-png">Export to PNG</button>
<button id="download-pdf">Export to PDF</button>
JavaScript
(function (d3, saveAs, jsPDF) {
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 exportButtonToPng = document.getElementById('download-png');
var exportButtonToPdf = document.getElementById('download-pdf');
addDomains();
addValueLine();
addAxes();
addMouseAction();
exportButtonToPng.addEventListener('click', exportToPng);
exportButtonToPdf.addEventListener('click', exportToPdf);
function...