Commit | Line | Data |
---|---|---|
98bb0633 DV |
1 | <!DOCTYPE html> |
2 | <html> | |
3 | <head> | |
98bb0633 | 4 | <title>Plotters demo</title> |
98bb0633 DV |
5 | <script type="text/javascript" src="../dygraph-dev.js"></script> |
6 | <script type="text/javascript" src="../extras/smooth-plotter.js"></script> | |
7 | ||
8 | <style type="text/css"> | |
9 | body { | |
10 | max-width: 700px; | |
11 | } | |
12 | div.chart { | |
13 | width: 640px; | |
14 | height: 320px; | |
15 | } | |
16 | input[type="range"] { | |
17 | width: 400px; | |
18 | } | |
19 | .smoother { | |
20 | margin-left: 50px; | |
21 | } | |
22 | </style> | |
23 | </head> | |
24 | <body> | |
25 | <h2>Smooth Lines</h2> | |
26 | <p>This plotter draws smooth lines between points using bezier curves.</p> | |
27 | <p class="smoother">Smoothing: <input type="range" id="smoothing-amount" min=0 max=0.7 step=0.01 value=0.33> <span id="smoothing-param">0.33</span></p> | |
28 | <div id="smooth-line" class="chart"></div> | |
29 | ||
30 | <p>View source to see how this works. You'll have to source <code>extras/smooth-plotter.js</code> in addition to dygraphs to get this feature. See the <a href="https://github.com/danvk/dygraphs/pull/469">pull request</a> that introduced this plotter to learn more about how it smooths your curves.</p> | |
31 | ||
32 | <script type="text/javascript"> | |
33 | // Smooth line plotter | |
34 | var functionData = []; | |
35 | var vs = [10, 20, 40, 0, 30, 15, 25, 60, 35, 45]; | |
36 | for (var i = 0; i < 10; i++) { | |
37 | var v = vs[i]; | |
38 | functionData.push([i, v, v]); | |
39 | } | |
40 | ||
41 | var g6; | |
42 | function drawSmoothPlot() { | |
43 | g6 = new Dygraph(document.getElementById('smooth-line'), | |
44 | functionData, | |
45 | { | |
46 | labels: ['Year', 'Straight', 'Smoothed'], | |
47 | series: { | |
48 | Straight: { | |
49 | color: 'rgba(0,0,0,0.33)', | |
50 | strokeWidth: 2, | |
51 | drawPoints: true, | |
52 | pointSize: 3 | |
53 | }, | |
54 | Smoothed: { | |
55 | plotter: smoothPlotter, | |
56 | color: 'red', | |
57 | strokeWidth: 2 | |
58 | } | |
59 | }, | |
60 | legend: 'always', | |
61 | gridLineColor: '#ddd' | |
62 | }); | |
63 | } | |
64 | drawSmoothPlot(); | |
65 | ||
66 | var smoothRangeEl = document.getElementById('smoothing-amount'); | |
67 | smoothRangeEl.addEventListener('input', function() { | |
68 | var param = parseFloat(smoothRangeEl.value); | |
69 | smoothPlotter.smoothing = param; | |
70 | document.getElementById('smoothing-param').innerHTML = param; | |
71 | drawSmoothPlot(); | |
72 | }); | |
73 | </script> | |
74 | </body> | |
75 | </html> |