Commit | Line | Data |
---|---|---|
85dfd536 | 1 | <!DOCTYPE html> |
93a5bb4c | 2 | <link rel="stylesheet" href="../css/dygraph.css"> |
85dfd536 DV |
3 | <title>legendFormatter</title> |
4 | <style> | |
5 | #demodiv { | |
6 | width: 640px; | |
7 | height: 480px; | |
8 | display: inline-block; | |
9 | vertical-align: top; | |
10 | } | |
11 | #legend { | |
12 | display: inline-block; | |
13 | vertical-align: top; | |
14 | } | |
15 | </style> | |
16 | ||
17 | <h2>legendFormatter</h2> | |
18 | <p>This page demonstrates use of <a href="../options.html#legendFormatter"><code>legendFormatter</code></a>, which can be used to create more complex legends than <code>valueFormatter</code>.</p> | |
19 | <div id="demodiv"></div> | |
20 | <div id="legend"></div> | |
21 | ||
22 | <script type="text/javascript" src="../dist/dygraph.js"></script> | |
23 | <script type="text/javascript"> | |
24 | function legendFormatter(data) { | |
25 | if (data.x == null) { | |
26 | // This happens when there's no selection and {legend: 'always'} is set. | |
27 | return '<br>' + data.series.map(function(series) { return series.dashHTML + ' ' + series.labelHTML }).join('<br>'); | |
28 | } | |
29 | ||
30 | var html = this.getLabels()[0] + ': ' + data.xHTML; | |
31 | data.series.forEach(function(series) { | |
32 | if (!series.isVisible) return; | |
33 | var labeledData = series.labelHTML + ': ' + series.yHTML; | |
34 | if (series.isHighlighted) { | |
35 | labeledData = '<b>' + labeledData + '</b>'; | |
36 | } | |
37 | html += '<br>' + series.dashHTML + ' ' + labeledData; | |
38 | }); | |
39 | return html; | |
40 | } | |
41 | ||
42 | new Dygraph( | |
43 | document.getElementById("demodiv"), | |
44 | function() { | |
45 | var zp = function(x) { if (x < 10) return "0"+x; else return x; }; | |
46 | var r = "date,parabola,line,another line,sine wave\n"; | |
47 | for (var i=1; i<=31; i++) { | |
48 | r += "200610" + zp(i); | |
49 | r += "," + 10*(i*(31-i)); | |
50 | r += "," + 10*(8*i); | |
51 | r += "," + 10*(250 - 8*i); | |
52 | r += "," + 10*(125 + 125 * Math.sin(0.3*i)); | |
53 | r += "\n"; | |
54 | } | |
55 | return r; | |
56 | }, | |
57 | { | |
58 | labelsDiv: document.getElementById('status'), | |
59 | labelsKMB: true, | |
60 | colors: ["rgb(51,204,204)", | |
61 | "rgb(255,100,100)", | |
62 | "#00DD55", | |
63 | "rgba(50,50,200,0.4)"], | |
64 | title: 'Interesting Shapes', | |
65 | xlabel: 'Date', | |
66 | ylabel: 'Count', | |
67 | highlightSeriesOpts: { strokeWidth: 2 }, | |
68 | labelsDiv: document.getElementById('legend'), | |
69 | legend: 'always', | |
70 | legendFormatter: legendFormatter | |
71 | } | |
72 | ); | |
73 | </script> |