X-Git-Url: https://adrianiainlam.tk/git/?a=blobdiff_plain;ds=sidebyside;f=dygraph-canvas.js;h=0aa7ca11ffcff84c06fe15521353d40b3832af32;hb=refs%2Fheads%2Ftwo_axes;hp=76f0b4417ded18899e50ee9c84ca046fec74899b;hpb=26ca7938c710424b17f217508837f0950a3e45a8;p=dygraphs.git diff --git a/dygraph-canvas.js b/dygraph-canvas.js index 76f0b44..0aa7ca1 100644 --- a/dygraph-canvas.js +++ b/dygraph-canvas.js @@ -4,7 +4,7 @@ /** * @fileoverview Based on PlotKit, but modified to meet the needs of dygraphs. * In particular, support for: - * - grid overlays + * - grid overlays * - error bars * - dygraphs attribute system */ @@ -19,7 +19,7 @@ DygraphLayout = function(dygraph, options) { this.options = {}; // TODO(danvk): remove, use attr_ instead. Dygraph.update(this.options, options ? options : {}); this.datasets = new Array(); - this.annotations = new Array() + this.annotations = new Array(); }; DygraphLayout.prototype.attr_ = function(name) { @@ -111,13 +111,6 @@ DygraphLayout.prototype._evaluateLineCharts = function() { name: setName }; - // limit the x, y values so they do not overdraw - if (point.y <= 0.0) { - point.y = 0.0; - } - if (point.y >= 1.0) { - point.y = 1.0; - } this.points.push(point); } } @@ -308,7 +301,7 @@ DygraphCanvasRenderer = function(dygraph, element, layout, options) { this.area.w -= (this.options.yAxisLabelWidth + 2 * this.options.axisTickSize); } else if (this.dygraph_.numAxes() > 2) { this.dygraph_.error("Only two y-axes are supported at this time. (Trying " + - "to use " + this.layout.yAxes.length + ")"); + "to use " + this.dygraph_.numAxes() + ")"); } this.container.style.position = "relative"; @@ -316,17 +309,21 @@ DygraphCanvasRenderer = function(dygraph, element, layout, options) { // Set up a clipping area for the canvas (and the interaction canvas). // This ensures that we don't overdraw. - var ctx = this.element.getContext("2d"); + var ctx = this.dygraph_.canvas_.getContext("2d"); ctx.beginPath(); ctx.rect(this.area.x, this.area.y, this.area.w, this.area.h); ctx.clip(); - var ctx = this.dygraph_.hidden_.getContext("2d"); + ctx = this.dygraph_.hidden_.getContext("2d"); ctx.beginPath(); ctx.rect(this.area.x, this.area.y, this.area.w, this.area.h); ctx.clip(); }; +DygraphCanvasRenderer.prototype.attr_ = function(x) { + return this.dygraph_.attr_(x); +}; + DygraphCanvasRenderer.prototype.clear = function() { if (this.isIE) { // VML takes a while to start up, so we just poll every this.IEDelay @@ -402,7 +399,8 @@ DygraphCanvasRenderer.prototype.render = function() { ctx.strokeStyle = this.options.gridLineColor; ctx.lineWidth = this.options.axisLineWidth; for (var i = 0; i < ticks.length; i++) { - if (ticks[i][0] != 0) continue; // TODO(danvk): per-axis property + // TODO(danvk): allow secondary axes to draw a grid, too. + if (ticks[i][0] != 0) continue; var x = this.area.x; var y = this.area.y + ticks[i][1] * this.area.h; ctx.beginPath(); @@ -419,7 +417,7 @@ DygraphCanvasRenderer.prototype.render = function() { ctx.strokeStyle = this.options.gridLineColor; ctx.lineWidth = this.options.axisLineWidth; for (var i=0; i