面积生成器

面积生成器--d3.area(),返回的函数用于生成不封闭的曲线路径字符串(path标签的d属性值)。它有两种,一种为随着x轴的伸展而变化(需要定义x,y0,y1访问器),另一种为随着y轴的伸展而变化(需要定义x0,x1,y访问器)。拿第一种来说,x可以理解为x轴的取值,y0可以理解为图形是基于那条线的,即:基线,y1可以理解为图形的另一条线,即:顶线。其实,整个面积图形是被包裹在y=y0和y=y1两条线之间的。注意,这两条线也可以是曲线。而第二条也就是整个面积图形是被包裹在x=x0和x=x1两条线之间的。

数据格式

数据值应包括自增的x或y,及基线和顶线。如,第一种情况下我们让基线固定,顶线变化便可以用如下的数据格式
  1. var data = [
  2. {x: 100, y: 100}, {x: 150, y: 150}, {x: 200, y: 100},
  3. {x: 250, y: 150}, {x: 300, y: 100}, {x: 350, y: 150}
  4. ];
有时候也需要让基线不是固定的:
  1. var data = [
  2. {x: 100, y1: 100, y0: 150}, {x: 150, y1: 150, y0: 200}, {x: 200, y1: 100, y0: 150},
  3. {x: 250, y1: 150, y0: 200}, {x: 300, y1: 100, y0: 150}, {x: 350, y1: 150, y0: 200}
  4. ];

构造器

第一种形式的构造器,第二种形式一样,只是访问器函数不一样。
  1. var area = d3.area()
  2. .x(function (d) {return d.x;})
  3. .y0(function (d) {return d.y0;})
  4. .y1(function(d){return d.y1;});
同样我们还可以使用curve使得边线有各种变形。
posted @ 2016-09-24 23:24  禅楼望月  阅读(338)  评论(0编辑  收藏  举报