axis calc full
by alexbfree
JavaScript
function calculate_interval_size(top) {
top = Math.abs(top);
if (top>=5000) {
return 500;
} else if (top >= 1000) {
return 500;
} else if (top > 500) {
return 100;
} else if (top >=100) {
return 50;
} else if (top >50) {
return 10;
} else if (top >=10) {
return 5;
} else if (top >5) {
return 1;
} else if (top >=1) {
return 0.5;
} else if (top >0) {
return 0.1;
} else {
return 0; // meaningless
}
}
function calculate_axis_limit(top) {
let sign = (top<0) ? -1: 1;
top = Math.abs(top);
if (top>=5000) {
return 10000 * sign;
} else if (top >= 1000) {
let possible_ends = [2000,3000,4000,5000]; // take the smallest of these that exceeds top.
let valid_ends = possible_ends.filter(end => end>=top);
return valid_ends[0] * sign;
} else if (top >500) {
return 1000 * sign;
} else if (top >=100) {
let possible_ends = [200,300,400,500]; // take the smallest of these that exceeds top.
let valid_ends = possible_ends.filter(end => end>=top);
return valid_ends[0] * sign;
} else if (top >50) {
return 100 * sign;
} else if (top >=10) {
let possible_ends = [20,30,40,50]; // take the smallest of these that exceeds top.
let valid_ends = possible_ends.filter(end => end>=top);
return valid_ends[0] * sign;
} else if (top >5) {
return 10 * sign;
} else if (top >=1) {
let possible_ends = [2,3,4,5]; // take the smallest of these that exceeds top.
let valid_ends = possible_ends.filter(end => end>=top);
return valid_ends[0] * sign;
} else if (top >0) {
return sign;
} else {
return 0;
}
}
function calculate_x_axis_for_histogram(data_object) {
let returnObject = {
min: null,
max: null,
interval: null
};
let highest_prize_value = Math.max(...data_object.prize_values);
let lowest_prize_value = Math.min(...data_object.prize_values);
if (lowest_prize_value<0) {
if (highest_prize_value>0) {
// negative...