From 349ef640517fc2429e8fb9364f7c30925507fddc Mon Sep 17 00:00:00 2001 From: Shumpei Shiina Date: Thu, 24 Oct 2019 20:53:59 -0500 Subject: [PATCH] Also fix violin traces --- src/traces/scatter/line_points.js | 4 +- src/traces/violin/plot.js | 11 +-- test/image/baselines/violin_log_scale.png | Bin 0 -> 25600 bytes test/image/mocks/violin_log_scale.json | 94 ++++++++++++++++++++++ 4 files changed, 102 insertions(+), 7 deletions(-) create mode 100644 test/image/baselines/violin_log_scale.png create mode 100644 test/image/mocks/violin_log_scale.json diff --git a/src/traces/scatter/line_points.js b/src/traces/scatter/line_points.js index 2943f2673bb..89964c92ccd 100644 --- a/src/traces/scatter/line_points.js +++ b/src/traces/scatter/line_points.js @@ -67,8 +67,8 @@ module.exports = function linePoints(d, opts) { function getPt(index) { var di = d[index]; if(!di) return false; - var x = xa.c2p(di.x); - var y = ya.c2p(di.y); + var x = opts.linearized ? xa.l2p(di.x) : xa.c2p(di.x); + var y = opts.linearized ? ya.l2p(di.y) : ya.c2p(di.y); // if non-positive log values, set them VERY far off-screen // so the line looks essentially straight from the previous point. diff --git a/src/traces/violin/plot.js b/src/traces/violin/plot.js index a109fd6cab9..f6ca9ac738a 100644 --- a/src/traces/violin/plot.js +++ b/src/traces/violin/plot.js @@ -28,7 +28,8 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) { connectGaps: true, baseTolerance: 0.75, shape: 'spline', - simplify: true + simplify: true, + linearized: true }); return Drawing.smoothopen(segments[0], 1); } @@ -64,8 +65,8 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) { var pathSel = d3.select(this); var density = d.density; var len = density.length; - var posCenter = d.pos + bPos; - var posCenterPx = posAxis.c2p(posCenter); + var posCenter = posAxis.c2l(d.pos + bPos, true); + var posCenterPx = posAxis.l2p(posCenter); var scale; if(trace.width) { @@ -85,7 +86,7 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) { for(i = 0; i < len; i++) { pt = pts[i] = {}; pt[t.posLetter] = posCenter + (density[i].v / scale); - pt[t.valLetter] = density[i].t; + pt[t.valLetter] = valAxis.c2l(density[i].t, true); } pathPos = makePath(pts); } @@ -95,7 +96,7 @@ module.exports = function plot(gd, plotinfo, cdViolins, violinLayer) { for(k = 0, i = len - 1; k < len; k++, i--) { pt = pts[k] = {}; pt[t.posLetter] = posCenter - (density[i].v / scale); - pt[t.valLetter] = density[i].t; + pt[t.valLetter] = valAxis.c2l(density[i].t, true); } pathNeg = makePath(pts); } diff --git a/test/image/baselines/violin_log_scale.png b/test/image/baselines/violin_log_scale.png new file mode 100644 index 0000000000000000000000000000000000000000..774b9627036b2539af05824555537ec34423a7a0 GIT binary patch literal 25600 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 E0H%!4Y5)KL literal 0 HcmV?d00001 diff --git a/test/image/mocks/violin_log_scale.json b/test/image/mocks/violin_log_scale.json new file mode 100644 index 00000000000..08fc932aa8f --- /dev/null +++ b/test/image/mocks/violin_log_scale.json @@ -0,0 +1,94 @@ +{ + "data": [ + { + "y": [ + 1.0, + 1.1, + 1.0, + 0.9, + 1.2, + 2.0, + 1.5, + 2.3, + 1.7, + 2.2, + 1.0, + 1.1, + 1.2, + 0.9, + 1.1 + ], + "x": [ + 1, + 1, + 1, + 1, + 1, + 10, + 10, + 10, + 10, + 10, + 100, + 100, + 100, + 100, + 100 + ], + "type": "violin", + "box": { + "visible": true + }, + "meanline": { + "visible": true + }, + "side": "negative" + }, + { + "y": [ + 2.2, + 2.3, + 2.0, + 2.5, + 2.1, + 0.1, + 0.5, + 0.8, + 0.3, + 0.3, + 2.4, + 2.0, + 1.5, + 1.6, + 1.9 + ], + "x": [ + 1, + 1, + 1, + 1, + 1, + 10, + 10, + 10, + 10, + 10, + 100, + 100, + 100, + 100, + 100 + ], + "type": "violin", + "meanline": { + "visible": true + }, + "side": "positive" + } + ], + "layout": { + "xaxis": { + "type": "log" + } + } +}