polylinear-scale
Create piecewise linear scales à la d3:
Although continuous scales typically have two values each in their domain and range, specifying more than two values produces a piecewise scale.
- Supports domains and ranges with more than two values each.
- Supports clamping to range.
- No dependencies.
For many more features, see d3-scale.
For an even simpler version that does not support multiple piecewise scales, see simple-linear-scale.
Setup
As a Node.js module:
$ yarn add polylinear-scale
$ npm install polylinear-scale
CDN version:
<script src="https://unpkg.com/polylinear-scale/dist/polylinear-scale.min.js"></script>
<script src="https://unpkg.com/polylinear-scale/dist/polylinear-scale.js"></script>
Arguments
domain (Array)
: The input domain (default is [0, 1]
).range (Array)
: The output range (default is [0, 1]
).clamp (Boolean)
: Enable or disable clamping (default is false
).
Returns
(Function)
: The resulting scaling function.
Examples
const polylinearScale = require('polylinear-scale')
const linear = polylinearScale([0, 1], [0, 100])
console.log(linear(0.5))
const polylinear = polylinearScale([0, 100, 300], [0, 50, 100])
console.log(polylinear(10))
console.log(polylinear(-10))
const clamped = polylinearScale([-10, 0, 10], [-5, 2, 10], true)
console.log(clamped(11))
Contributing
Uses JavaScript Standard Style.
$ npm run test