X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-canvas.js;h=f463e3955e03115237815233260a840a9a62ce35;hb=7aedf6fee4cad9a3fc6de49476fc176e48a090fa;hp=b90695b804b24b00327fd1dd26ae46ff8c50cf52;hpb=d4b89d5690719c1d6e77b61b2afb132dd0cad92d;p=dygraphs.git diff --git a/dygraph-canvas.js b/dygraph-canvas.js index b90695b..f463e39 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -32,9 +32,9 @@ DygraphLayout.prototype.addDataset = function(setname, set_xy) { DygraphLayout.prototype.setAnnotations = function(ann) { // The Dygraph object's annotations aren't parsed. We parse them here and - // save a copy. + // save a copy. If there is no parser, then the user must be using raw format. this.annotations = []; - var parse = this.attr_('xValueParser'); + var parse = this.attr_('xValueParser') || function(x) { return x; }; for (var i = 0; i < ann.length; i++) { var a = {}; if (!ann[i].xval && !ann[i].x) { @@ -89,8 +89,15 @@ DygraphLayout.prototype._evaluateLimits = function() { axis.yrange = axis.maxyval - axis.minyval; axis.yscale = (axis.yrange != 0 ? 1.0 / axis.yrange : 1.0); - axis.ylogrange = Dygraph.log10(axis.maxyval) - Dygraph.log10(axis.minyval); - axis.ylogscale = (axis.ylogrange != 0 ? 1.0 / axis.ylogrange : 1.0); + if (axis.g.attr_("logscale")) { + axis.ylogrange = Dygraph.log10(axis.maxyval) - Dygraph.log10(axis.minyval); + axis.ylogscale = (axis.ylogrange != 0 ? 1.0 / axis.ylogrange : 1.0); + if (!isFinite(axis.ylogrange) || isNaN(axis.ylogrange)) { + axis.g.error('axis ' + i + ' of graph at ' + axis.g + + ' can\'t be displayed in log scale for range [' + + axis.minyval + ' - ' + axis.maxyval + ']'); + } + } } }; @@ -105,7 +112,7 @@ DygraphLayout.prototype._evaluateLineCharts = function() { for (var j = 0; j < dataset.length; j++) { var item = dataset[j]; - + var yval; if (axis.logscale) { yval = 1.0 - ((Dygraph.log10(parseFloat(item[1])) - Dygraph.log10(axis.minyval)) * axis.ylogscale); // really should just be yscale.