Remove axis.logscale for interaction model.
[dygraphs.git] / dygraph.js
index 0d4f82c..aefbd19 100644 (file)
@@ -2428,6 +2428,7 @@ Dygraph.prototype.renderGraph_ = function(is_initial_draw) {
  *   indices are into the axes_ array.
  */
 Dygraph.prototype.computeYAxes_ = function() {
+
   // Preserve valueWindow settings if they exist, and if the user hasn't
   // specified a new valueRange.
   var i, valueWindows, seriesName, axis, index, opts, v;
@@ -2450,6 +2451,30 @@ Dygraph.prototype.computeYAxes_ = function() {
     this.axes_[axis] = opts;
   }
 
+  // TODO(konigsberg): REMOVE THIS SILLINESS this should just come from DygraphOptions.
+  // TODO(konigsberg): Add tests for all of these. Currently just tests for
+  // includeZero and logscale.
+
+  // all options which could be applied per-axis:
+  var axisOptions = [
+    'valueRange',
+    'labelsKMB',
+    'labelsKMG2',
+    'pixelsPerYLabel',
+    'yAxisLabelWidth',
+    'axisLabelFontSize',
+    'axisTickSize',
+    'logscale'
+  ];
+
+  // Copy global axis options over to the first axis.
+  for (i = 0; i < axisOptions.length; i++) {
+    var k = axisOptions[i];
+    v = this.attr_(k);
+    if (v) this.axes_[0][k] = v;
+  }
+  // TODO(konigsberg): end of REMOVE THIS SILLINESS
+
   if (valueWindows !== undefined) {
     // Restore valueWindow settings.
     for (index = 0; index < valueWindows.length; index++) {
@@ -2505,7 +2530,8 @@ Dygraph.prototype.computeYAxisRanges_ = function(extremes) {
   // Compute extreme values, a span and tick marks for each axis.
   for (var i = 0; i < numAxes; i++) {
     var axis = this.axes_[i];
-
+    var logscale = this.attributes_.getForAxis("logscale", i);
+    var includeZero = this.attributes_.getForAxis("includeZero", i);
     series = this.attributes_.seriesForAxis(i);
 
     if (series.length == 0) {
@@ -2531,7 +2557,7 @@ Dygraph.prototype.computeYAxisRanges_ = function(extremes) {
           maxY = Math.max(extremeMaxY, maxY);
         }
       }
-      if (axis.includeZero && minY > 0) minY = 0;
+      if (includeZero && minY > 0) minY = 0;
 
       // Ensure we have a valid scale, otherwise default to [0, 1] for safety.
       if (minY == Infinity) minY = 0;
@@ -2543,7 +2569,7 @@ Dygraph.prototype.computeYAxisRanges_ = function(extremes) {
       if (span === 0) { span = maxY; }
 
       var maxAxisY, minAxisY;
-      if (axis.logscale) {
+      if (logscale) {
         maxAxisY = maxY + 0.1 * span;
         minAxisY = minY;
       } else {
@@ -3198,6 +3224,7 @@ Dygraph.prototype.parseDataTable_ = function(data) {
   if (annotations.length > 0) {
     this.setAnnotations(annotations, true);
   }
+  this.attributes_.reparseSeries();
 };
 
 /**