| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>plot-simple</title> |
| <meta charset="utf-8" /> |
| <meta http-equiv="X-UA-Compatible" content="IE=edge"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <style type="text/css" media="screen"> |
| button { |
| display: inline-block; |
| } |
| |
| plot-simple-sk { |
| display: block; |
| } |
| </style> |
| </head> |
| <body> |
| <h1>Plot</h1> |
| <div> |
| <button class=action id=reset>Reset</button> |
| <button class=action id=add>Add</button> |
| <button class=action id=clear>Clear</button> |
| <button class=action id=high>Highlight</button> |
| <button class=action id=clearhigh>Clear Highlight</button> |
| <button class=action id=xbar>X Bar</button> |
| <button class=action id=clearxbar>Clear X Bar</button> |
| <button class=action id=bands>Bands</button> |
| <button class=action id=special>Add Special</button> |
| </div> |
| |
| <plot-simple-sk width=800 height=600 id=plot></plot-simple-sk> |
| |
| <table> |
| <tr><th>Selected</th><td id=selected></td></tr> |
| <tr><th>Focused</th><td id=focused></td></tr> |
| <tr><th>Zoom</th><td id=zoom></td></tr> |
| </table> |
| |
| <script type="text/javascript" charset="utf-8"> |
| window.customElements.whenDefined('plot-simple-sk').then(() => { |
| const $$ = (query, ele = document) => ele.querySelector(query); |
| var ele = $$('#plot'); |
| var n = 0; |
| |
| function add() { |
| let labels = []; |
| for (let i = 0; i < 50; i++) { |
| labels.push(new Date(1554143900000 + i * i * 1000*60*60)); |
| } |
| |
| var traces = {}; |
| for (var j = 10 - 1; j >= 0; j--) { |
| var trace = []; |
| for (var i = 0; i < 50; i++) { |
| trace.push([i, 0.8 + Math.sin(i/10) + j + Math.random()*0.5 + 10]); |
| } |
| var id = "trace" + (10-j+n); |
| traces[id] = trace; |
| } |
| n += 10; |
| ele.addLines(traces, labels); |
| } |
| |
| add(); |
| |
| $$('#add').addEventListener('click', function() { |
| add(); |
| }); |
| |
| $$('#clear').addEventListener('click', function() { |
| ele.removeAll(); |
| }); |
| |
| $$('#reset').addEventListener('click', function() { |
| ele.resetAxes(); |
| }); |
| |
| $$('#high').addEventListener('click', function(e) { |
| ele.setHighlight(["trace" + n, "trace" + (n-1)]); |
| }); |
| |
| $$('#clearhigh').addEventListener('click', function(e) { |
| ele.clearHighlight(); |
| }); |
| |
| $$('#xbar').addEventListener('click', function(e) { |
| ele.setXBar(3); |
| }); |
| |
| $$('#clearxbar').addEventListener('click', function(e) { |
| ele.clearXBar(); |
| }); |
| |
| $$('#plot').addEventListener('trace_selected', function(e) { |
| $$('#selected').textContent = JSON.stringify(e.detail); |
| }); |
| |
| $$('#plot').addEventListener('trace_focused', function(e) { |
| $$('#focused').textContent = JSON.stringify(e.detail); |
| }); |
| |
| $$('#plot').addEventListener('zoom', function(e) { |
| $$('#zoom').textContent = JSON.stringify(e.detail); |
| }); |
| |
| $$('#bands').addEventListener('click', function(e) { |
| ele.setBanding([[1, 4], [20, 30]]); |
| }); |
| |
| $$('#special').addEventListener('click', function(e) { |
| var trace = []; |
| for (var i = 0; i < 50; i++) { |
| trace.push([i, 0]); |
| } |
| ele.addLines({"specialZero": trace}); |
| }); |
| }) |
| </script> |
| </body> |
| </html> |