Skip to content

Commit d074741

Browse files
committed
fix gl3d errorbar convert step:
- include scaleFactor into 'errors' computations - swap value and valueminus in percent type on par with 2d
1 parent 911796c commit d074741

File tree

2 files changed

+33
-24
lines changed

2 files changed

+33
-24
lines changed

src/traces/scatter3d/calc_errors.js

Lines changed: 31 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
'use strict';
1111

12-
function calculateAxisErrors(data, params) {
12+
function calculateAxisErrors(data, params, scaleFactor) {
1313
if(!params || !params.visible) return null;
1414

1515
function option(name, value) {
@@ -36,24 +36,31 @@ function calculateAxisErrors(data, params) {
3636
var x = +data[i];
3737

3838
switch(type) {
39-
case 'percent':
40-
h = Math.abs(x) * value / 100.0;
41-
l = Math.abs(x) * minusValue / 100.0;
42-
result[i] = [ -l, h ];
43-
break;
44-
45-
case 'constant':
46-
result[i] = [ -minusValue, value ];
47-
break;
48-
49-
case 'sqrt':
50-
r = Math.sqrt(Math.abs(x));
51-
result[i] = [ -r, r ];
52-
break;
53-
54-
case 'data':
55-
result[i] = [ (+minusError[i]) - x, (+error[i]) - x ];
56-
break;
39+
case 'percent':
40+
result[i] = [
41+
-Math.abs(x) * (minusValue / 100.0) * scaleFactor,
42+
Math.abs(x) * (value / 100.0) * scaleFactor
43+
];
44+
break;
45+
46+
case 'constant':
47+
result[i] = [
48+
-minusValue * scaleFactor,
49+
value * scaleFactor
50+
];
51+
break;
52+
53+
case 'sqrt':
54+
var r = Math.sqrt(Math.abs(x)) * scaleFactor;
55+
result[i] = [-r, r];
56+
break;
57+
58+
case 'data':
59+
result[i] = [
60+
-(+minusError[i]) * scaleFactor,
61+
(+error[i]) * scaleFactor
62+
];
63+
break;
5764
}
5865
}
5966

@@ -67,11 +74,12 @@ function dataLength(array) {
6774
return 0;
6875
}
6976

70-
function calculateErrors(data) {
77+
function calculateErrors(data, scaleFactor) {
7178
var errors = [
72-
calculateAxisErrors(data.x, data.error_x),
73-
calculateAxisErrors(data.y, data.error_y),
74-
calculateAxisErrors(data.z, data.error_z) ],
79+
calculateAxisErrors(data.x, data.error_x, scaleFactor[0]),
80+
calculateAxisErrors(data.y, data.error_y, scaleFactor[1]),
81+
calculateAxisErrors(data.z, data.error_z, scaleFactor[2])
82+
];
7583

7684
var n = dataLength(errors);
7785
if(n === 0) return null;

src/traces/scatter3d/convert.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,8 @@ function convertPlotlyOptions(scene, data) {
243243
}
244244
}
245245

246-
params.errorBounds = calculateError(data);
246+
params.errorBounds = calculateError(data, scaleFactor);
247+
247248
var errorParams = calculateErrorParams([data.error_x, data.error_y, data.error_z]);
248249
params.errorColor = errorParams.color;
249250
params.errorLineWidth = errorParams.lineWidth;

0 commit comments

Comments
 (0)