record Dygraph in independent-series.html
[dygraphs.git] / tests / independent-series.html
CommitLineData
75c589da
DV
1<html>
2 <head>
3 <title>Independent Series</title>
4 <!--[if IE]>
5 <script type="text/javascript" src="../excanvas.js"></script>
6 <![endif]-->
7 <script type="text/javascript" src="../strftime/strftime-min.js"></script>
8 <script type="text/javascript" src="../rgbcolor/rgbcolor.js"></script>
9 <script type="text/javascript" src="../dygraph-canvas.js"></script>
10 <script type="text/javascript" src="../dygraph.js"></script>
11 <style type="text/css">
12 .thinborder {
13 border-width: 1px;
14 border-spacing: 0px;
15 border-style: solid;
16 border-color: black;
17 border-collapse: collapse;
18 }
19
20 .thinborder td,
21 .thinborder th {
22 border-width: 1px;
23 padding: 5px;
24 border-style: solid;
25 border-color: black;
26 }
27 </style>
28 </head>
29 <body>
30 <p>By using the connectSeparated attribute, it's possible to display a chart of several time series with completely independent x-values.</p>
31
32 <p>The trick is to specify values for the series at the union of the x-values of all series. For one series' x values, specify <code>null</code> for each of the other series.</p>
33
c6a0ebba 34 <div id="graph" style="float: right; margin-right: 50px; width: 400px; height: 300px;"></div>
75c589da
DV
35 <p>For example, say you had two series:</p>
36 <table><tr>
37 <td valign=top>
38 <table>
39 <table class=thinborder>
40 <tr><th>x</th><th>A</th></tr>
41 <tr><td>2</td><td>2</td></tr>
c6a0ebba
DV
42 <tr><td>4</td><td>6</td></tr>
43 <tr><td>6</td><td>4</td></tr>
75c589da
DV
44 </table>
45 </td>
46 <td valign=top style="padding-left:25px;">
47 <table class=thinborder>
48 <tr><th>x</th><th>B</th></tr>
49 <tr><td>1</td><td>3</td></tr>
c6a0ebba
DV
50 <tr><td>3</td><td>7</td></tr>
51 <tr><td>5</td><td>5</td></tr>
75c589da
DV
52 </table>
53 </td>
54 </tr></table>
55
56 <p>Then you would specify the following CSV or native data:</p>
57 <table><tr>
58 <td valign=top>
59 (CSV)
60 <pre>X,A,B
611,,3
622,2,
c6a0ebba
DV
633,,7
644,6,
655,,5
666,4,</pre>
75c589da
DV
67 </td>
68 <td valign=top style="padding-left: 25px;">
69 (native)
70 <pre>[
71[1, null, 3],
72[2, 2, null],
c6a0ebba
DV
73[3, null, 7],
74[4, 6, null],
75[5, null, 5],
76[6, 4, null] ]</pre>
75c589da
DV
77 </td>
78 </tr></table>
79
80 <script type="text/javascript">
81 new Dygraph(
82 document.getElementById("graph"),
83 [
84 [1, null, 3],
85 [2, 2, null],
c6a0ebba
DV
86 [3, null, 7],
87 [4, 5, null],
88 [5, null, 5],
89 [6, 3, null]
75c589da
DV
90 ],
91 {
92 labels: ["x", "A", "B" ],
c6a0ebba
DV
93 connectSeparatedPoints: true,
94 drawPoints: true
75c589da
DV
95 }
96 );
97 </script>
98
c6a0ebba
DV
99 <h3>Encoding a gap</h3>
100 <p>There's one extra wrinkle. What if one of the series has a missing
101 value, i.e. what if your series are something like </p>
75c589da
DV
102
103 <table><tr>
104 <td valign=top>
105 <table>
106 <table class=thinborder>
107 <tr><th>x</th><th>A</th></tr>
108 <tr><td>2</td><td>2</td></tr>
109 <tr><td>4</td><td>4</td></tr>
110 <tr><td>6</td><td>(gap)</td></tr>
111 <tr><td>8</td><td>8</td></tr>
112 <tr><td>10</td><td>10</td></tr>
113 </table>
114 </td>
115 <td valign=top style="padding-left:25px;">
116 <table class=thinborder>
117 <tr><th>x</th><th>B</th></tr>
118 <tr><td>1</td><td>3</td></tr>
119 <tr><td>3</td><td>5</td></tr>
120 <tr><td>5</td><td>7</td></tr>
121 </table>
122 </td>
123 </tr></table>
124
c6a0ebba 125 <div id="graph2" style="float: right; margin-right: 50px; width: 400px; height: 300px;"></div>
75c589da
DV
126 <p>The gap would normally be encoded as a null, or missing value. But when you use <code>connectSeparatedPoints</code>, that has a special meaning. Instead, you have to use <code>NaN</code>. This is a bit of a hack, but it gets the job done.</p>
127
128 <script type="text/javascript">
876cc77c 129 g2 = new Dygraph(
75c589da 130 document.getElementById("graph2"),
c6a0ebba
DV
131"x,A,B \n" +
132"1,,3 \n" +
133"2,2, \n" +
134"3,,5 \n" +
135"4,4, \n" +
136"5,,7 \n" +
137"6,NaN, \n" +
138"8,8, \n" +
139"10,10, \n"
140 , {
75c589da 141 labels: ["x", "A", "B" ],
c6a0ebba
DV
142 connectSeparatedPoints: true,
143 drawPoints: true
75c589da
DV
144 }
145 );
146 </script>
147
c6a0ebba
DV
148 <table><tr>
149 <td valign=top>
150 (CSV)
151 <pre>x,A,B
1521,,3
1532,2,
1543,,5
1554,4,
1565,,7
1576,NaN,
1588,8,
15910,10,</pre>
160 </td>
161 <td valign=top style="padding-left: 25px;">
162 (native)
163 <pre>[ [1, null, 3],
164 [2, 2, null],
165 [3, null, 5],
166 [4, 4, null],
167 [5, null, 7],
168 [6, NaN, null],
169 [8, 8, null],
170 [10, 10, null] ]</pre>
171 </td>
172 </tr></table>
173
75c589da
DV
174 </body>
175</html>