Skip to content

Commit 72f885a

Browse files
authored
Merge pull request #4029 from plotly/indicator-fixes
`indicator`: several improvements/fixes
2 parents 66eacc3 + 38be82d commit 72f885a

19 files changed

+754
-188
lines changed

Diff for: src/traces/indicator/attributes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ module.exports = {
163163
number: {
164164
valueformat: {
165165
valType: 'string',
166-
dflt: '.3s',
166+
dflt: '',
167167
role: 'info',
168168
editType: 'plot',
169169
description: [

Diff for: src/traces/indicator/calc.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,18 @@ function calc(gd, trace) {
1414
var cd = [];
1515

1616
var lastReading = trace.value;
17-
var secondLastReading = trace.delta ? trace.delta.reference : trace._lastValue || trace.value;
17+
if(!(typeof trace._lastValue === 'number')) trace._lastValue = trace.value;
18+
var secondLastReading = trace._lastValue;
19+
var deltaRef = secondLastReading;
20+
if(trace._hasDelta && typeof trace.delta.reference === 'number') {
21+
deltaRef = trace.delta.reference;
22+
}
1823
cd[0] = {
1924
y: lastReading,
2025
lastY: secondLastReading,
2126

22-
delta: lastReading - secondLastReading,
23-
relativeDelta: (lastReading - secondLastReading) / secondLastReading,
27+
delta: lastReading - deltaRef,
28+
relativeDelta: (lastReading - deltaRef) / deltaRef,
2429
};
2530
return cd;
2631
}

Diff for: src/traces/indicator/defaults.js

+5-3
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
3232
traceOut._hasDelta = traceOut.mode.indexOf('delta') !== -1;
3333
traceOut._hasGauge = traceOut.mode.indexOf('gauge') !== -1;
3434

35-
coerce('value');
35+
var value = coerce('value');
36+
traceOut._range = [0, (typeof value === 'number' ? 1.5 * value : 1)];
3637

3738
// Number attributes
3839
var auto = new Array(2);
@@ -63,7 +64,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
6364
}
6465
coerce('delta.reference', traceOut.value);
6566
coerce('delta.relative');
66-
coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '.3s');
67+
coerce('delta.valueformat', traceOut.delta.relative ? '2%' : '');
6768
coerce('delta.increasing.symbol');
6869
coerce('delta.increasing.color');
6970
coerce('delta.decreasing.symbol');
@@ -87,6 +88,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
8788
function coerceGaugeAxis(attr, dflt) {
8889
return Lib.coerce(axisIn, axisOut, attributes.gauge.axis, attr, dflt);
8990
}
91+
9092
if(traceOut._hasGauge) {
9193
gaugeIn = traceIn.gauge;
9294
if(!gaugeIn) gaugeIn = {};
@@ -130,7 +132,7 @@ function supplyDefaults(traceIn, traceOut, defaultColor, layout) {
130132
if(gaugeIn) axisIn = gaugeIn.axis || {};
131133
axisOut = Template.newContainer(gaugeOut, 'axis');
132134
coerceGaugeAxis('visible');
133-
coerceGaugeAxis('range', [0, 1.5 * traceOut.value]);
135+
traceOut._range = coerceGaugeAxis('range', traceOut._range);
134136

135137
var opts = {outerTicks: true};
136138
handleTickValueDefaults(axisIn, axisOut, coerceGaugeAxis, 'linear');

0 commit comments

Comments
 (0)