chapter-4 比例尺

如果用原生数值代替像素值,显示的图形过小或过大时,就需要将某一区域的值映射到另一区域,但其大小关系不变,这就是比例尺(Scale)了。

线性比例尺

var dataset = [1.2, 2.3, 0.9, 1.5, 3.3];
var min = d3.min(dataset);
var max = d3.max(dataset);

var linear = d3.scale.linear()  // 生成线性比例尺
    .domain([min, max])         // 设置定义域
    .range([0, 300]);           // 设置值域

linear(0.9);    //返回 0  参数就是 dataset 中的item
linear(2.3);    //返回 175
linear(3.3);    //返回 300

其中,d3.scale.linear() 返回一个线性比例尺,返回值可以当做函数来使用的。domain()range() 分别设定比例尺的定义域和值域。

注意:V4 版本改变了写法,应该是 var linear = d3.scaleLinear();

上图用的是d3.v3 ,宽度比例尺和颜色比例尺

序数比例尺

如果,定义域和值域不一定是连续的,都是离散的。那就要用到序数比例尺了。

Last updated