Skip to content

Commit 51b5c25

Browse files
authored
Merge pull request #3408 from plotly/fix3392-errorbars-inherit-color2
Errorbars inherit color from line or marker color
2 parents c2cded4 + 9a69c79 commit 51b5c25

17 files changed

+397
-13
lines changed

src/traces/bar/defaults.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
7070

7171
handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);
7272

73+
var lineColor = (traceOut.marker.line || {}).color;
74+
7375
// override defaultColor for error bars with defaultLine
7476
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
75-
errorBarsSupplyDefaults(traceIn, traceOut, Color.defaultLine, {axis: 'y'});
76-
errorBarsSupplyDefaults(traceIn, traceOut, Color.defaultLine, {axis: 'x', inherit: 'y'});
77+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
78+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
7779

7880
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
7981
};

src/traces/histogram/defaults.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,12 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
6262

6363
handleStyleDefaults(traceIn, traceOut, coerce, defaultColor, layout);
6464

65+
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
66+
67+
var lineColor = (traceOut.marker.line || {}).color;
68+
6569
// override defaultColor for error bars with defaultLine
6670
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
67-
errorBarsSupplyDefaults(traceIn, traceOut, Color.defaultLine, {axis: 'y'});
68-
errorBarsSupplyDefaults(traceIn, traceOut, Color.defaultLine, {axis: 'x', inherit: 'y'});
69-
70-
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
71+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'y'});
72+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || Color.defaultLine, {axis: 'x', inherit: 'y'});
7173
};

src/traces/scatter/defaults.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,14 +71,17 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
7171
if(!subTypes.hasLines(traceOut)) handleLineShapeDefaults(traceIn, traceOut, coerce);
7272
}
7373

74+
var lineColor = (traceOut.line || {}).color;
75+
var markerColor = (traceOut.marker || {}).color;
76+
7477
if(traceOut.fill === 'tonext' || traceOut.fill === 'toself') {
7578
dfltHoverOn.push('fills');
7679
}
7780
coerce('hoveron', dfltHoverOn.join('+') || 'points');
7881
if(traceOut.hoveron !== 'fills') coerce('hovertemplate');
7982
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
80-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'y'});
81-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'x', inherit: 'y'});
83+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
84+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
8285

8386
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
8487
};

src/traces/scatter3d/defaults.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
6262
}
6363

6464
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
65-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'z'});
66-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'y', inherit: 'z'});
67-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'x', inherit: 'z'});
65+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'z'});
66+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y', inherit: 'z'});
67+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'z'});
6868
};
6969

7070
function handleXYZDefaults(traceIn, traceOut, coerce, layout) {

src/traces/scattergl/defaults.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,17 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout
5555
handleTextDefaults(traceIn, traceOut, layout, coerce);
5656
}
5757

58+
var lineColor = (traceOut.line || {}).color;
59+
var markerColor = (traceOut.marker || {}).color;
60+
5861
coerce('fill');
5962
if(traceOut.fill !== 'none') {
6063
handleFillColorDefaults(traceIn, traceOut, defaultColor, coerce);
6164
}
6265

6366
var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults');
64-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'y'});
65-
errorBarsSupplyDefaults(traceIn, traceOut, defaultColor, {axis: 'x', inherit: 'y'});
67+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'});
68+
errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'});
6669

6770
Lib.coerceSelectionMarkerOpacity(traceOut, coerce);
6871
};
Loading

test/image/baselines/benchmarks.png

57 Bytes
Loading
1 Byte
Loading
Loading
Loading

0 commit comments

Comments
 (0)