X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;f=dygraph-canvas.js;h=d6570d12ea1d7e034659be8b0a55fb7d757b0aef;hb=eee806a0323c685c0ba9f9e40d80f050ac587d64;hp=fb454c9b804b9cae36fb41628d28275b2520e559;hpb=990d6a3598ceecbfbe639a2683ef9aa1ed933ef9;p=dygraphs.git diff --git a/dygraph-canvas.js b/dygraph-canvas.js index fb454c9..d6570d1 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -70,7 +70,7 @@ DygraphLayout.prototype.setAnnotations = function(ann) { return; } Dygraph.update(a, ann[i]); - if (!a.xval) a.xval = parse(a.x); + if (!a.xval) a.xval = parse(a.x, this.dygraph_); this.annotations.push(a); } }; @@ -334,12 +334,18 @@ DygraphCanvasRenderer.prototype.attr_ = function(x) { DygraphCanvasRenderer.prototype.computeArea_ = function() { var area = { // TODO(danvk): per-axis setting. - x: this.attr_('yAxisLabelWidth') + 2 * this.attr_('axisTickSize'), + x: 0, y: 0 }; + if (this.attr_('drawYAxis')) { + area.x = this.attr_('yAxisLabelWidth') + 2 * this.attr_('axisTickSize'); + } + area.w = this.width - area.x - this.attr_('rightGap'); - area.h = this.height - this.attr_('axisLabelFontSize') - - 2 * this.attr_('axisTickSize'); + area.h = this.height; + if (this.attr_('drawXAxis')) { + area.h -= this.attr_('axisLabelFontSize') + 2 * this.attr_('axisTickSize'); + } // Shrink the drawing area to accomodate additional y-axes. if (this.dygraph_.numAxes() == 2) { @@ -515,14 +521,18 @@ DygraphCanvasRenderer.prototype._renderAxis = function() { width: this.attr_('axisLabelWidth') + "px", overflow: "hidden" }; - var makeDiv = function(txt) { + var makeDiv = function(txt, axis) { var div = document.createElement("div"); for (var name in labelStyle) { if (labelStyle.hasOwnProperty(name)) { div.style[name] = labelStyle[name]; } } - div.appendChild(document.createTextNode(txt)); + var inner_div = document.createElement("div"); + // TODO(danvk): separate class for secondary y-axis + inner_div.className = 'dygraph-axis-label dygraph-axis-label-' + axis; + inner_div.appendChild(document.createTextNode(txt)); + div.appendChild(inner_div); return div; }; @@ -549,7 +559,7 @@ DygraphCanvasRenderer.prototype._renderAxis = function() { context.closePath(); context.stroke(); - var label = makeDiv(tick[2]); + var label = makeDiv(tick[2], 'y'); var top = (y - this.attr_('axisLabelFontSize') / 2); if (top < 0) top = 0; @@ -614,7 +624,7 @@ DygraphCanvasRenderer.prototype._renderAxis = function() { context.closePath(); context.stroke(); - var label = makeDiv(tick[1]); + var label = makeDiv(tick[1], 'x'); label.style.textAlign = "center"; label.style.top = (y + this.attr_('axisTickSize')) + 'px'; @@ -846,7 +856,7 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { // TODO(danvk): use this.attr_ for many of these. var context = this.elementContext; var fillAlpha = this.attr_('fillAlpha'); - var errorBars = this.attr_("errorBars"); + var errorBars = this.attr_("errorBars") || this.attr_("customBars"); var fillGraph = this.attr_("fillGraph"); var stackedGraph = this.attr_("stackedGraph"); var stepPlot = this.attr_("stepPlot"); @@ -1029,7 +1039,7 @@ DygraphCanvasRenderer.prototype._renderLineChart = function() { var isIsolated = (!prevX && (j == points.length - 1 || !Dygraph.isOK(points[j+1].canvasy))); - if (!prevX) { + if (prevX === null) { prevX = point.canvasx; prevY = point.canvasy; } else {