UNPKG

react-native-chart-kit

Version:

Beautiful React Native charts for dashboards, reports, and data-rich mobile apps.

35 lines (34 loc) 1.21 kB
export const createBandScale = ({ domain, range, paddingInner = 0, paddingOuter = 0 }) => { const count = domain.length; const rangeSpan = range[1] - range[0]; const denominator = Math.max(1, count - paddingInner + paddingOuter * 2); const step = count === 0 ? 0 : rangeSpan / denominator; const bandwidth = step * Math.max(0, 1 - paddingInner); const positions = new Map(); domain.forEach((value, index) => { positions.set(value, range[0] + step * (paddingOuter + index)); }); return { domain, range, bandwidth, step, scale: (value) => positions.get(value) }; }; export const createPointScale = ({ domain, range, padding = 0 }) => { const count = domain.length; const rangeSpan = range[1] - range[0]; const step = count <= 1 ? 0 : rangeSpan / Math.max(1, count - 1 + padding * 2); const offset = count <= 1 ? rangeSpan / 2 : step * padding; const positions = new Map(); domain.forEach((value, index) => { positions.set(value, range[0] + offset + step * index); }); return { domain, range, step, scale: (value) => positions.get(value) }; };