From eafb46d885bfba8186faecdc8cd3f036144e8a32 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 12 Apr 2017 15:52:35 -0400 Subject: [PATCH] add attributes xshift, yshift to annotations --- .../annotations/annotation_defaults.js | 3 ++ src/components/annotations/attributes.js | 22 +++++++- src/components/annotations/calc_autorange.js | 24 ++++++--- src/components/annotations/draw.js | 26 ++++++---- .../image/baselines/annotations-autorange.png | Bin 43553 -> 43333 bytes test/image/mocks/annotations-autorange.json | 40 +++++++++------ test/jasmine/tests/annotations_test.js | 47 ++++++++++-------- 7 files changed, 108 insertions(+), 54 deletions(-) diff --git a/src/components/annotations/annotation_defaults.js b/src/components/annotations/annotation_defaults.js index b59c0aacd59..f81436159da 100644 --- a/src/components/annotations/annotation_defaults.js +++ b/src/components/annotations/annotation_defaults.js @@ -83,6 +83,9 @@ module.exports = function handleAnnotationDefaults(annIn, annOut, fullLayout, op // xanchor, yanchor coerce(axLetter + 'anchor'); + + // xshift, yshift + coerce(axLetter + 'shift'); } // if you have one coordinate you should have both diff --git a/src/components/annotations/attributes.js b/src/components/annotations/attributes.js index dd07be6ce28..779f4a899e4 100644 --- a/src/components/annotations/attributes.js +++ b/src/components/annotations/attributes.js @@ -180,7 +180,9 @@ module.exports = { description: [ 'Sets a distance, in pixels, to move the arrowhead away from the', 'position it is pointing at, for example to point at the edge of', - 'a marker independent of zoom.' + 'a marker independent of zoom. Note that this shortens the arrow', + 'from the `ax` / `ay` vector, in contrast to `xshift` / `yshift`', + 'which moves everything by this amount.' ].join(' ') }, ax: { @@ -292,6 +294,15 @@ module.exports = { 'corresponds to the closest side.' ].join(' ') }, + xshift: { + valType: 'number', + dflt: 0, + role: 'style', + description: [ + 'Shifts the position of the whole annotation and arrow to the', + 'right (positive) or left (negative) by this many pixels.' + ].join(' ') + }, yref: { valType: 'enumerated', values: [ @@ -342,6 +353,15 @@ module.exports = { 'corresponds to the closest side.' ].join(' ') }, + yshift: { + valType: 'number', + dflt: 0, + role: 'style', + description: [ + 'Shifts the position of the whole annotation and arrow up', + '(positive) or down (negative) by this many pixels.' + ].join(' ') + }, clicktoshow: { valType: 'enumerated', values: [false, 'onoff', 'onout'], diff --git a/src/components/annotations/calc_autorange.js b/src/components/annotations/calc_autorange.js index f68ea537c63..37646b3993a 100644 --- a/src/components/annotations/calc_autorange.js +++ b/src/components/annotations/calc_autorange.js @@ -50,12 +50,17 @@ function annAutorange(gd) { ya = Axes.getFromId(gd, ann.yref), headSize = 3 * ann.arrowsize * ann.arrowwidth || 0; + var headPlus, headMinus; + if(xa && xa.autorange) { + headPlus = headSize + ann.xshift; + headMinus = headSize - ann.xshift; + if(ann.axref === ann.xref) { // expand for the arrowhead (padded by arrowhead) Axes.expand(xa, [xa.r2c(ann.x)], { - ppadplus: headSize, - ppadminus: headSize + ppadplus: headPlus, + ppadminus: headMinus }); // again for the textbox (padded by textbox) Axes.expand(xa, [xa.r2c(ann.ax)], { @@ -65,17 +70,20 @@ function annAutorange(gd) { } else { Axes.expand(xa, [xa.r2c(ann.x)], { - ppadplus: Math.max(ann._xpadplus, headSize), - ppadminus: Math.max(ann._xpadminus, headSize) + ppadplus: Math.max(ann._xpadplus, headPlus), + ppadminus: Math.max(ann._xpadminus, headMinus) }); } } if(ya && ya.autorange) { + headPlus = headSize - ann.yshift; + headMinus = headSize + ann.yshift; + if(ann.ayref === ann.yref) { Axes.expand(ya, [ya.r2c(ann.y)], { - ppadplus: headSize, - ppadminus: headSize + ppadplus: headPlus, + ppadminus: headMinus }); Axes.expand(ya, [ya.r2c(ann.ay)], { ppadplus: ann._ypadplus, @@ -84,8 +92,8 @@ function annAutorange(gd) { } else { Axes.expand(ya, [ya.r2c(ann.y)], { - ppadplus: Math.max(ann._ypadplus, headSize), - ppadminus: Math.max(ann._ypadminus, headSize) + ppadplus: Math.max(ann._ypadplus, headPlus), + ppadminus: Math.max(ann._ypadminus, headMinus) }); } } diff --git a/src/components/annotations/draw.js b/src/components/annotations/draw.js index 80c5c76a19a..371af5ef0da 100644 --- a/src/components/annotations/draw.js +++ b/src/components/annotations/draw.js @@ -236,6 +236,7 @@ function drawOne(gd, index) { // but this one is the positive total size annSize = Math.abs(annSizeFromWidth) + Math.abs(annSizeFromHeight), anchor = options[axLetter + 'anchor'], + overallShift = options[axLetter + 'shift'] * (axLetter === 'x' ? 1 : -1), posPx = annPosPx[axLetter], basePx, textPadShift, @@ -326,6 +327,9 @@ function drawOne(gd, index) { posPx.text -= shiftMinus; } } + + posPx.tail += overallShift; + posPx.head += overallShift; } else { // with no arrow, the text rotates and *then* we put the anchor @@ -335,6 +339,10 @@ function drawOne(gd, index) { posPx.text = basePx + textShift; } + posPx.text += overallShift; + textShift += overallShift; + textPadShift += overallShift; + // padplus/minus are used by autorange options['_' + axLetter + 'padplus'] = (annSize / 2) + textPadShift; options['_' + axLetter + 'padminus'] = (annSize / 2) - textPadShift; @@ -524,21 +532,17 @@ function drawOne(gd, index) { update[annbase + '.x'] = xa ? xa.p2r(xa.r2p(options.x) + dx) : - ((headX + dx - gs.l) / gs.w); + (options.x + (dx / gs.w)); update[annbase + '.y'] = ya ? ya.p2r(ya.r2p(options.y) + dy) : - (1 - ((headY + dy - gs.t) / gs.h)); + (options.y - (dy / gs.h)); if(options.axref === options.xref) { - update[annbase + '.ax'] = xa ? - xa.p2r(xa.r2p(options.ax) + dx) : - ((headX + dx - gs.l) / gs.w); + update[annbase + '.ax'] = xa.p2r(xa.r2p(options.ax) + dx); } if(options.ayref === options.yref) { - update[annbase + '.ay'] = ya ? - ya.p2r(ya.r2p(options.ay) + dy) : - (1 - ((headY + dy - gs.t) / gs.h)); + update[annbase + '.ay'] = ya.p2r(ya.r2p(options.ay) + dy); } arrowGroup.attr('transform', 'translate(' + dx + ',' + dy + ')'); @@ -594,7 +598,8 @@ function drawOne(gd, index) { if(xa) update[annbase + '.x'] = options.x + dx / xa._m; else { var widthFraction = options._xsize / gs.w, - xLeft = options.x + options._xshift / gs.w - widthFraction / 2; + xLeft = options.x + (options._xshift - options.xshift) / gs.w - + widthFraction / 2; update[annbase + '.x'] = dragElement.align(xLeft + dx / gs.w, widthFraction, 0, 1, options.xanchor); @@ -603,7 +608,8 @@ function drawOne(gd, index) { if(ya) update[annbase + '.y'] = options.y + dy / ya._m; else { var heightFraction = options._ysize / gs.h, - yBottom = options.y - options._yshift / gs.h - heightFraction / 2; + yBottom = options.y - (options._yshift + options.yshift) / gs.h - + heightFraction / 2; update[annbase + '.y'] = dragElement.align(yBottom - dy / gs.h, heightFraction, 0, 1, options.yanchor); diff --git a/test/image/baselines/annotations-autorange.png b/test/image/baselines/annotations-autorange.png index fae1b98ca22bd91effa34fd6b75021306675a9fe..da920e7ed1cbd9f5f918141fcdcc09008854d365 100644 GIT binary patch literal 43333 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
$xiKRzEcPT@39d9>)~><)q9mOqgw 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 diff --git a/test/image/mocks/annotations-autorange.json b/test/image/mocks/annotations-autorange.json index 3fa5453db48..ded30e807e6 100644 --- a/test/image/mocks/annotations-autorange.json +++ b/test/image/mocks/annotations-autorange.json @@ -52,49 +52,61 @@ "width":800, "margin":{"r":40,"b":100,"l":40,"t":40}, "annotations":[ - {"ay":0,"ax":50,"x":1,"y":1.5,"text":"Left"}, - {"ay":0,"ax":-50,"x":2,"y":1.5,"text":"Right"}, - {"x":1.5,"y":2,"text":"Top","ay":50,"ax":0}, - {"x":1.5,"y":1,"text":"Bottom","ay":-50,"ax":0}, + {"ay":0,"ax":50,"x":1,"y":1.5,"text":"Left", "xshift": -10, "yshift": -10}, + {"ay":0,"ax":-50,"x":2,"y":1.5,"text":"Right", "xshift": 10, "yshift": 10}, + {"x":1.5,"y":2,"text":"Top","ay":50,"ax":0, "xshift": -10, "yshift": 10}, + {"x":1.5,"y":1,"text":"Bottom","ay":-50,"ax":0, "xshift": 10, "yshift": -10}, { "xref":"x2","yref":"y2","text":"From left","y":2,"ax":-17,"ay":0,"x":"2001-01-01", - "xanchor": "right", "yanchor": "top", "textangle": 35, "bordercolor": "#444" + "xanchor": "right", "yanchor": "top", "textangle": 35, "bordercolor": "#444", + "xshift": 10 }, { "xref":"x2","yref":"y2","text":"From
right","y":2,"x":"2001-03-01","ay":0,"ax":50, - "bgcolor": "#eee", "width": 50, "height": 40, "textangle": 70 + "bgcolor": "#eee", "width": 50, "height": 40, "textangle": 70, + "xshift": -10 }, { "xref":"x2","yref":"y2","text":"From top","y":3,"ax":0,"ay":-27,"x":"2001-02-01", - "xanchor": "left", "yanchor": "bottom", "textangle": -15, "bordercolor": "#444" + "xanchor": "left", "yanchor": "bottom", "textangle": -15, "bordercolor": "#444", + "yshift": -10 }, { "xref":"x2","yref":"y2","text":"From Bottom","y":1,"ax":0,"ay":50,"x":"2001-02-01", - "bordercolor": "#444", "borderwidth": 3, "height": 30 + "bordercolor": "#444", "borderwidth": 3, "height": 30, + "yshift": 10 }, { "xref":"x3","yref":"y3","text":"Left
no
arrow","y":1.5,"x":1,"showarrow":false, "bordercolor": "#444", "bgcolor": "#eee", "width": 50, "height": 60, "textangle": 10, - "align": "right", "valign": "bottom" + "align": "right", "valign": "bottom", "xshift": 10 + }, + { + "xref":"x3","yref":"y3","text":"Right
no
arrow","y":1.5,"x":2,"showarrow":false, + "xshift": -10 }, - {"xref":"x3","yref":"y3","text":"Right
no
arrow","y":1.5,"x":2,"showarrow":false}, { "xref":"x3","yref":"y3","text":"Bottom
no
arrow","y":1,"x":1.5,"showarrow":false, "bgcolor": "#eee", "width": 30, "height": 40, "textangle":-10, - "align": "left", "valign": "top" + "align": "left", "valign": "top", "yshift": 10 + }, + { + "xref":"x3","yref":"y3","text":"Top
no
arrow","y":2,"x":1.5,"showarrow":false, + "yshift": -10 }, - {"xref":"x3","yref":"y3","text":"Top
no
arrow","y":2,"x":1.5,"showarrow":false}, { "xref": "paper", "yref": "paper", "text": "On the
bottom of the plot", "x": 0.3, "y": -0.1, "showarrow": false, "xanchor": "right", "yanchor": "top", "width": 200, "height": 60, - "bgcolor": "#eee", "bordercolor": "#444" + "bgcolor": "#eee", "bordercolor": "#444", + "xshift": -5, "yshift": 5 }, { "xref": "paper", "yref": "paper", "text": "blah blah blah blah
blah
blah
blah
blah
blah", "x": 0.3, "y": -0.25, "ax": 100, "ay": 0, "textangle": 40, "borderpad": 4, "xanchor": "left", "yanchor": "bottom", "align": "left", "valign": "top", - "width": 60, "height": 40, "bgcolor": "#eee", "bordercolor": "#444" + "width": 60, "height": 40, "bgcolor": "#eee", "bordercolor": "#444", + "xshift": -5, "yshift": 5 } ] } diff --git a/test/jasmine/tests/annotations_test.js b/test/jasmine/tests/annotations_test.js index 9a24aa600e5..3a1711daabb 100644 --- a/test/jasmine/tests/annotations_test.js +++ b/test/jasmine/tests/annotations_test.js @@ -554,9 +554,9 @@ describe('annotations autorange', function() { it('should adapt to relayout calls', function(done) { Plotly.plot(gd, mock).then(function() { assertRanges( - [0.97, 2.03], [0.97, 2.03], - ['2000-10-01 08:23:18.0583', '2001-06-05 19:20:23.301'], [-0.245, 4.245], - [0.9, 2.1], [0.86, 2.14] + [0.91, 2.09], [0.91, 2.09], + ['2000-11-13', '2001-04-21'], [-0.069, 3.917], + [0.88, 2.05], [0.92, 2.08] ); return Plotly.relayout(gd, { @@ -567,9 +567,9 @@ describe('annotations autorange', function() { }) .then(function() { assertRanges( - [1.44, 2.02], [0.97, 2.03], - ['2001-01-18 15:06:04.0449', '2001-03-27 14:01:20.8989'], [-0.245, 4.245], - [1.44, 2.1], [0.86, 2.14] + [1.44, 2.02], [0.91, 2.09], + ['2001-01-18', '2001-03-27'], [-0.069, 3.917], + [1.44, 2.1], [0.92, 2.08] ); return Plotly.relayout(gd, { @@ -581,8 +581,8 @@ describe('annotations autorange', function() { .then(function() { assertRanges( [1.44, 2.02], [0.99, 1.52], - ['2001-01-31 23:59:59.999', '2001-02-01 00:00:00.001'], [-0.245, 4.245], - [0.5, 2.5], [0.86, 2.14] + ['2001-01-31 23:59:59.999', '2001-02-01 00:00:00.001'], [-0.069, 3.917], + [0.5, 2.5], [0.92, 2.08] ); return Plotly.relayout(gd, { @@ -596,9 +596,9 @@ describe('annotations autorange', function() { }) .then(function() { assertRanges( - [0.97, 2.03], [0.97, 2.03], - ['2000-10-01 08:23:18.0583', '2001-06-05 19:20:23.301'], [-0.245, 4.245], - [0.9, 2.1], [0.86, 2.14] + [0.91, 2.09], [0.91, 2.09], + ['2000-11-13', '2001-04-21'], [-0.069, 3.917], + [0.88, 2.05], [0.92, 2.08] ); }) .catch(failTest) @@ -619,10 +619,10 @@ describe('annotations autorange', function() { }) .then(function() { assertRanges( - [-1.09, 2.09], [0.94, 3.06], + [-1.09, 2.25], [0.84, 3.06], // the other axes shouldn't change - ['2000-10-01 08:23:18.0583', '2001-06-05 19:20:23.301'], [-0.245, 4.245], - [0.9, 2.1], [0.86, 2.14] + ['2000-11-13', '2001-04-21'], [-0.069, 3.917], + [0.88, 2.05], [0.92, 2.08] ); }) .catch(failTest) @@ -961,7 +961,8 @@ describe('annotation effects', function() { showarrow: false, text: 'blah
blah blah', xref: 'paper', - yref: 'paper' + yref: 'paper', + xshift: 5, yshift: 5 }]) .then(function() { var bbox = textBox().getBoundingClientRect(); @@ -981,7 +982,8 @@ describe('annotation effects', function() { xref: 'paper', yref: 'paper', xanchor: 'left', - yanchor: 'top' + yanchor: 'top', + xshift: 5, yshift: 5 }]) .then(function() { // with offsets 0, 0 because the anchor doesn't change now @@ -999,7 +1001,8 @@ describe('annotation effects', function() { xref: 'paper', yref: 'paper', ax: 30, - ay: 30 + ay: 30, + xshift: 5, yshift: 5 }]) .then(function() { return checkDragging(arrowDrag, 0, 0, 1); @@ -1014,7 +1017,8 @@ describe('annotation effects', function() { x: 0, y: 0, showarrow: false, - text: 'blah
blah blah' + text: 'blah
blah blah', + xshift: 5, yshift: 5 }]) .then(function() { return checkDragging(textDrag, 0, 0, 100); @@ -1029,7 +1033,8 @@ describe('annotation effects', function() { y: 0, text: 'blah
blah blah', ax: 30, - ay: -30 + ay: -30, + xshift: 5, yshift: 5 }]) .then(function() { return checkDragging(arrowDrag, 0, 0, 100); @@ -1127,7 +1132,7 @@ describe('annotation effects', function() { } makePlot([ - {x: 50, y: 50, text: 'hi', width: 50, ax: 0, ay: -40}, + {x: 50, y: 50, text: 'hi', width: 50, ax: 0, ay: -40, xshift: -50, yshift: 50}, {x: 20, y: 20, text: 'bye', height: 40, showarrow: false}, {x: 80, y: 80, text: 'why?', ax: 0, ay: -40} ], {}) // turn off the default editable: true @@ -1136,7 +1141,7 @@ describe('annotation effects', function() { gd.on('plotly_clickannotation', function(evt) { clickData.push(evt); }); gdBB = gd.getBoundingClientRect(); - pos0Head = [gdBB.left + 250, gdBB.top + 250]; + pos0Head = [gdBB.left + 200, gdBB.top + 200]; pos0 = [pos0Head[0], pos0Head[1] - 40]; pos1 = [gdBB.left + 160, gdBB.top + 340]; pos2Head = [gdBB.left + 340, gdBB.top + 160];