项目作者: elcontraption

项目描述 :
Create piecewise linear scales à la d3
高级语言: JavaScript
项目地址: git://github.com/elcontraption/polylinear-scale.git
创建时间: 2016-09-14T00:02:08Z
项目社区:https://github.com/elcontraption/polylinear-scale

开源协议:GNU General Public License v3.0

下载


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:

  1. $ yarn add polylinear-scale
  2. # or
  3. $ npm install polylinear-scale

CDN version:

  1. <!-- Minified -->
  2. <script src="https://unpkg.com/polylinear-scale/dist/polylinear-scale.min.js"></script>
  3. <!-- Un-minified -->
  4. <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

  1. const polylinearScale = require('polylinear-scale')
  2. // Create a linear scale
  3. const linear = polylinearScale([0, 1], [0, 100])
  4. console.log(linear(0.5)) // 50
  5. // Create a polylinear scale
  6. const polylinear = polylinearScale([0, 100, 300], [0, 50, 100])
  7. console.log(polylinear(10)) // 5
  8. console.log(polylinear(-10)) // -5
  9. // Clamp results to the given range
  10. const clamped = polylinearScale([-10, 0, 10], [-5, 2, 10], true)
  11. console.log(clamped(11)) // 10

Contributing

Uses JavaScript Standard Style.

  1. # test
  2. $ npm run test