1 <!DOCTYPE html "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 4 <head> 5 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 6 <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@1.0.4/dist/d3.flameGraph.min.css"> 7 </head> 8 9 <body onresize="resizeFlameGraph()"> 10 <div id="chart"></div> 11 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.13.0/d3.min.js"></script> 12 <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3-tip/0.7.1/d3-tip.min.js"></script> 13 <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/spiermar/d3-flame-graph@1.0.4/dist/d3.flameGraph.min.js"></script> 14 <script type="text/javascript"> 15 16 var flameGraph; 17 var currentJson; 18 19 function processGraph(jsonObj) { 20 flameGraph = d3.flameGraph() 21 .width(windowSize() * 0.9) 22 .transitionDuration(750) 23 .transitionEase(d3.easeCubic) 24 .sort(true) 25 .title(""); 26 currentJson = jsonObj; 27 d3.select("#chart") 28 .datum(jsonObj) 29 .call(flameGraph); 30 } 31 32 function windowSize() { 33 return Math.max(document.documentElement.clientWidth, window.innerWidth || 0); 34 } 35 36 function resizeFlameGraph() { 37 if (flameGraph) { 38 flameGraph.width(windowSize() * 0.9); 39 d3.select("#chart") 40 .datum(currentJson) 41 .call(flameGraph); 42 } 43 } 44 45 </script> 46 </body> 47 48 </html>