LogScale and customBars with negative values
authorWim Bruynooghe <wim@wimme.net>
Fri, 31 May 2013 11:22:44 +0000 (13:22 +0200)
committerWim Bruynooghe <wim@wimme.net>
Fri, 31 May 2013 11:22:44 +0000 (13:22 +0200)
When LogScale and customBars are enabled, it was verifying if the value was negative by using a <= on an array and then inserting a null. This caused exceptions in rollingAverage(), the value can't be null when using customBars.

(This a new patch based on the current code, since pull request #236 was getting old).

dygraph.js

index 5e4ba62..9f9dc26 100644 (file)
@@ -2821,12 +2821,20 @@ Dygraph.prototype.extractSeries_ = function(rawData, i, logScale) {
     if (logScale) {
       // On the log scale, points less than zero do not exist.
       // This will create a gap in the chart.
-      if (point <= 0) {
+      if (errorBars || customBars) {
+        for (var k = 0; k < point.length; k++) {
+          if (point[k] <= 0) {
+            point = null;
+            break;
+          }
+        }
+      }
+      else if (point <= 0) {
         point = null;
       }
     }
     // Fix null points to fit the display type standard.
-    if(point !== null) {
+    if (point !== null) {
       series.push([x, point]);
     } else {
       series.push([x, errorBars ? [null, null] : customBars ? [null, null, null] : point]);