From 9583cfaca0c4740ac5d12ff3e4a32744dc9c2f02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Wed, 16 Nov 2016 12:47:13 -0500 Subject: [PATCH 1/3] annotation: assign dflt pos if category IS NOT present --- src/plots/cartesian/axes.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plots/cartesian/axes.js b/src/plots/cartesian/axes.js index 27359e06df9..bd86bb76b06 100644 --- a/src/plots/cartesian/axes.js +++ b/src/plots/cartesian/axes.js @@ -116,7 +116,7 @@ axes.coercePosition = function(containerOut, gd, coerce, axRef, attr, dflt) { // if position is given as a category name, convert it to a number if(typeof pos === 'string' && (ax._categories || []).length) { newPos = ax._categories.indexOf(pos); - containerOut[attr] = (newPos !== -1) ? dflt : newPos; + containerOut[attr] = (newPos === -1) ? dflt : newPos; return; } } From 6e7d5d6c6ecedb7451b34a438301559bc9dd7a6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Wed, 16 Nov 2016 13:08:30 -0500 Subject: [PATCH 2/3] test: add annotations to mock 16 --- test/image/baselines/16.png | Bin 18044 -> 18606 bytes test/image/mocks/16.json | 156 +++++------------------------------- 2 files changed, 19 insertions(+), 137 deletions(-) diff --git a/test/image/baselines/16.png b/test/image/baselines/16.png index 446891b07b4e2daedcd3a845d003741d4f16f66d..edce238d560e3a14718182f07c5cb775b1844ef8 100644 GIT binary patch literal 18606 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 Oqo-qZJVy(C{r>s@88IiKg5bLPRhvl{#8Sm~&! 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 diff --git a/test/image/mocks/16.json b/test/image/mocks/16.json index b73a41d13e2..24e9b09e702 100644 --- a/test/image/mocks/16.json +++ b/test/image/mocks/16.json @@ -36,10 +36,6 @@ "12pm", "6pm" ], - "name": "trace 0", - "zauto": true, - "zmin": 0.1189977, - "zmax": 0.959744, "scl": [ [ 0, @@ -87,147 +83,33 @@ ], "layout": { "title": "User Traffic", - "titlefont": { - "color": "", - "family": "", - "size": 0 - }, "font": { - "family": "Arial, sans-serif", - "size": 12, - "color": "#000" + "family": "Arial, sans-serif", + "size": 12, + "color": "#000" }, - "showlegend": false, "autosize": false, "width": 600, "height": 350, "xaxis": { - "title": "", - "titlefont": { - "color": "", - "family": "", - "size": 16 - }, - "range": [ - -0.5, - 4.5 - ], - "domain": [ - 0, - 1 - ], - "type": "category", - "rangemode": "normal", - "showgrid": true, - "zeroline": true, - "showline": true, - "autotick": true, - "nticks": 0, - "ticks": "", - "showticklabels": true, - "tick0": 0, - "dtick": 1, - "ticklen": 5, - "tickwidth": 1, - "tickcolor": "#000", - "tickangle": 0, - "tickfont": { - "size": 14, - "color": "" - }, - "exponentformat": "e", - "showexponent": "all", - "gridcolor": "#ddd", - "gridwidth": 1, - "zerolinecolor": "#000", - "zerolinewidth": 1, - "linecolor": "rgb(255, 255, 255)", - "linewidth": 0.1, - "anchor": "y", - "position": 0, - "mirror": true, - "overlaying": false, - "autorange": true + "ticks": "" }, "yaxis": { - "title": "", - "titlefont": { - "color": "", - "family": "", - "size": 16 - }, - "range": [ - -0.5, - 2.5 - ], - "domain": [ - 0, - 1 - ], - "type": "category", - "rangemode": "normal", - "showgrid": true, - "zeroline": true, - "showline": true, - "autotick": true, - "nticks": 0, - "ticks": "", - "showticklabels": true, - "tick0": 0, - "dtick": 1, - "ticklen": 5, - "tickwidth": 1, - "tickcolor": "#000", - "tickangle": 0, - "tickfont": { - "family": "Arial, sans-serif", - "size": 14, - "color": "" - }, - "exponentformat": "e", - "showexponent": "all", - "gridcolor": "#ddd", - "gridwidth": 1, - "zerolinecolor": "#000", - "zerolinewidth": 1, - "linecolor": "rgb(255, 255, 255)", - "linewidth": 0.1, - "anchor": "x", - "position": 0, - "mirror": true, - "overlaying": false, - "autorange": true - }, - "legend": { - "x": 0.98, - "y": 0.98, - "traceorder": "normal", - "font": { - "family": "", - "size": 0, - "color": "" - }, - "bgcolor": "#fff", - "bordercolor": "#000", - "borderwidth": 1 - }, - "margin": { - "l": 110, - "r": 200, - "b": 80, - "t": 80, - "pad": 2, - "autoexpand": true + "ticks": "" }, - "paper_bgcolor": "#fff", - "plot_bgcolor": "#fff", - "hovermode": "x", - "dragmode": "zoom", - "barmode": "stack", - "bargap": 0.2, - "bargroupgap": 0, - "boxmode": "overlay", - "separators": ".,", - "hidesources": false + "annotations": [ + { + "showarrow": false, + "x": "Wed", + "y": "12pm", + "text": "meeting" + }, + { + "showarrow": false, + "x": 0, + "y": 0, + "text": "meeting" + } + ] } } From 58b91e739b38ddf21fd281ad19134b00320630f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Wed, 16 Nov 2016 13:09:25 -0500 Subject: [PATCH 3/3] test: add annotation with category positions case --- test/jasmine/tests/annotations_test.js | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/test/jasmine/tests/annotations_test.js b/test/jasmine/tests/annotations_test.js index f771fdcca6c..cf6e282f6da 100644 --- a/test/jasmine/tests/annotations_test.js +++ b/test/jasmine/tests/annotations_test.js @@ -87,6 +87,41 @@ describe('Test annotations', function() { expect(layoutOut.annotations[0].x).toEqual('2008-07-01'); expect(layoutOut.annotations[0].ax).toEqual('2004-07-01'); }); + + it('should convert ax/ay category coordinates to linear coords', function() { + var layoutIn = { + annotations: [{ + showarrow: true, + axref: 'x', + ayref: 'y', + x: 'c', + ax: 1, + y: 'A', + ay: 3 + }] + }; + + var layoutOut = { + xaxis: { + type: 'category', + _categories: ['a', 'b', 'c'], + range: [-0.5, 2.5] }, + yaxis: { + type: 'category', + _categories: ['A', 'B', 'C'], + range: [-0.5, 3] + } + }; + Axes.setConvert(layoutOut.xaxis); + Axes.setConvert(layoutOut.yaxis); + + _supply(layoutIn, layoutOut); + + expect(layoutOut.annotations[0].x).toEqual(2); + expect(layoutOut.annotations[0].ax).toEqual(1); + expect(layoutOut.annotations[0].y).toEqual(0); + expect(layoutOut.annotations[0].ay).toEqual(3); + }); }); });