Skip to content

Commit

Permalink
_configure for linear & logarithmic, time scale
Browse files Browse the repository at this point in the history
  • Loading branch information
kurkle committed Jun 24, 2019
1 parent a0bb7b6 commit d85cf76
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 30 deletions.
2 changes: 1 addition & 1 deletion src/core/core.scale.js
Expand Up @@ -355,7 +355,7 @@ var Scale = Element.extend({
me._start = start;
me._end = end;
me._reverse = reverse;
me._length = me._end - me._start;
me._length = end - start;
},

afterUpdate: function() {
Expand Down
12 changes: 2 additions & 10 deletions src/scales/scale.linear.js
Expand Up @@ -158,20 +158,12 @@ module.exports = LinearScaleBase.extend({

// Utils
getPixelForValue: function(value) {
// This must be called after fit has been run so that
// this.left, this.top, this.right, and this.bottom have been defined
var me = this;
var start = me.min;
var rightValue = +me.getRightValue(value);
var range = me.max - start;
return me.getPixelForDecimal((rightValue - start) / range);
return me.getPixelForDecimal((+me.getRightValue(value) - me.min) / me._range);
},

getValueForPixel: function(pixel) {
var me = this;
var start = me.min;
var range = me.max - start;
return start + me.getDecimalForPixel(pixel) * range;
return this.min + this.getDecimalForPixel(pixel) * this._range;
},

getPixelForTick: function(index) {
Expand Down
8 changes: 8 additions & 0 deletions src/scales/scale.linearbase.js
Expand Up @@ -231,5 +231,13 @@ module.exports = Scale.extend({
me.zeroLineIndex = me.ticks.indexOf(0);

Scale.prototype.convertTicksToLabels.call(me);
},

_configure: function() {
var me = this;

Scale.prototype._configure.call(me);

me._range = me.max - me.min;
}
});
12 changes: 7 additions & 5 deletions src/scales/scale.logarithmic.js
Expand Up @@ -268,15 +268,18 @@ module.exports = Scale.extend({
return significand * Math.pow(10, exp);
},

_getParams: function() {
_configure: function() {
var me = this;
var start = me.min;
var offset = 0;

Scale.prototype._configure.call(me);

if (start === 0) {
start = me._getFirstTickValue(me.minNotZero);
offset = valueOrDefault(me.options.ticks.fontSize, defaults.global.defaultFontSize) / me._length;
}
return {
me._params = {
start: log10(start),
offset: offset,
range: (log10(me.max) - log10(start)) / (1 - offset)
Expand All @@ -286,20 +289,19 @@ module.exports = Scale.extend({
getPixelForValue: function(value) {
var me = this;
var decimal = 0;
var params;
var params = me._params;

value = +me.getRightValue(value);

if (value > me.min && value > 0) {
params = me._getParams();
decimal = (log10(value) - params.start) / params.range + params.offset;
}
return me.getPixelForDecimal(decimal);
},

getValueForPixel: function(pixel) {
var me = this;
var params = me._getParams();
var params = me._params;
var decimal = me.getDecimalForPixel(pixel);
return decimal === 0 && me.min === 0
? 0
Expand Down
22 changes: 8 additions & 14 deletions src/scales/scale.time.js
Expand Up @@ -401,7 +401,7 @@ function computeOffsets(table, ticks, min, max, options) {
}
}

return {start: start, end: end};
return {start: start, end: end, range: start + 1 + end};
}

function setMajorTicks(scale, ticks, map, majorUnit) {
Expand Down Expand Up @@ -595,7 +595,6 @@ module.exports = Scale.extend({
me.max = Math.max(min + 1, max);

// PRIVATE
me._horizontal = me.isHorizontal();
me._table = [];
me._timestamps = {
data: timestamps,
Expand All @@ -610,16 +609,16 @@ module.exports = Scale.extend({
var max = me.max;
var options = me.options;
var timeOpts = options.time;
var timestamps = [];
var timestamps = me._timestamps;
var ticks = [];
var i, ilen, timestamp;

switch (options.ticks.source) {
case 'data':
timestamps = me._timestamps.data;
timestamps = timestamps.data;
break;
case 'labels':
timestamps = me._timestamps.labels;
timestamps = timestamps.labels;
break;
case 'auto':
default:
Expand Down Expand Up @@ -723,13 +722,9 @@ module.exports = Scale.extend({
*/
getPixelForOffset: function(time) {
var me = this;
var isReverse = me.options.ticks.reverse;
var size = me._horizontal ? me.width : me.height;
var start = me._horizontal ? isReverse ? me.right : me.left : isReverse ? me.bottom : me.top;
var offsets = me._offsets;
var pos = interpolate(me._table, 'time', time, 'pos');
var offset = size * (me._offsets.start + pos) / (me._offsets.start + 1 + me._offsets.end);

return isReverse ? start - offset : start + offset;
return me.getPixelForDecimal((offsets.start + pos) / offsets.range);
},

getPixelForValue: function(value, index, datasetIndex) {
Expand Down Expand Up @@ -758,9 +753,8 @@ module.exports = Scale.extend({

getValueForPixel: function(pixel) {
var me = this;
var size = me._horizontal ? me.width : me.height;
var start = me._horizontal ? me.left : me.top;
var pos = (size ? (pixel - start) / size : 0) * (me._offsets.start + 1 + me._offsets.start) - me._offsets.end;
var offsets = me._offsets;
var pos = me.getDecimalForPixel(pixel) * offsets.range - offsets.end;
var time = interpolate(me._table, 'pos', pos, 'time');

// DEPRECATION, we should return time directly
Expand Down

0 comments on commit d85cf76

Please sign in to comment.