react-native-chart-kit
Version:
Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.
23 lines (22 loc) • 793 B
JavaScript
import { resolveNumericDomain } from "./domain";
export const createLinearScale = ({ domain = "auto", values = [], range }) => {
const resolvedDomain = resolveNumericDomain(values, domain);
const domainSpan = resolvedDomain[1] - resolvedDomain[0];
const rangeSpan = range[1] - range[0];
return {
domain: resolvedDomain,
range,
scale: (value) => {
if (domainSpan === 0) {
return range[0];
}
return range[0] + ((value - resolvedDomain[0]) / domainSpan) * rangeSpan;
},
invert: (value) => {
if (rangeSpan === 0) {
return resolvedDomain[0];
}
return resolvedDomain[0] + ((value - range[0]) / rangeSpan) * domainSpan;
}
};
};