Examples of sequential scale interpolators.
From D3 in Depth book by Peter Cook.
| license: gpl-3.0 | |
| height: 600 | |
| border: no |
Examples of sequential scale interpolators.
From D3 in Depth book by Peter Cook.
| <!DOCTYPE html> | |
| <meta charset="utf-8"> | |
| <head> | |
| <title>Sequential scale interpolators</title> | |
| </head> | |
| <style> | |
| body { | |
| font-family: "Helvetica Neue", Helvetica, sans-serif; | |
| font-size: 12px; | |
| color: #333; | |
| } | |
| text { | |
| fill: #777; | |
| } | |
| </style> | |
| <body> | |
| <svg width="700" height="580"> | |
| <g id="wrapper" transform="translate(40, 40)"> | |
| </g> | |
| </svg> | |
| <script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.2.2/d3.min.js"></script> | |
| <script> | |
| var linearScale = d3.scaleLinear() | |
| .domain([0, 100]) | |
| .range([0, 600]); | |
| var sequentialScale = d3.scaleSequential() | |
| .domain([0, 100]); | |
| var interpolators = [ | |
| 'interpolateViridis', | |
| 'interpolateInferno', | |
| 'interpolateMagma', | |
| 'interpolatePlasma', | |
| 'interpolateWarm', | |
| 'interpolateCool', | |
| 'interpolateRainbow', | |
| 'interpolateCubehelixDefault' | |
| ]; | |
| var myData = d3.range(0, 100, 2); | |
| function dots(d) { | |
| sequentialScale | |
| .interpolator(d3[d]); | |
| d3.select(this) | |
| .append('text') | |
| .attr('y', -10) | |
| .text(d); | |
| d3.select(this) | |
| .selectAll('rect') | |
| .data(myData) | |
| .enter() | |
| .append('rect') | |
| .attr('x', function(d) { | |
| return linearScale(d); | |
| }) | |
| .attr('width', 11) | |
| .attr('height', 30) | |
| .style('fill', function(d) { | |
| return sequentialScale(d); | |
| }); | |
| } | |
| d3.select('#wrapper') | |
| .selectAll('g.interpolator') | |
| .data(interpolators) | |
| .enter() | |
| .append('g') | |
| .classed('interpolator', true) | |
| .attr('transform', function(d, i) { | |
| return 'translate(0, ' + (i * 70) + ')'; | |
| }) | |
| .each(dots); | |
| </script> | |
| </body> | |
| </html> |