1.线生成器—直线
line生成器生成的是直线,两点确定一条直线,所以line需要指定x,y的坐标,在文档中成为访问器,也叫访问函数,同时还可以指定插值模式,就是两点之间采用什么样的策略确定插值点,有step,basis,linear等。总之就是在定义生成器的时候会在后边定义它生成它所需要的一些属性。
// 线生成器
// var lineData=[[1,50],[40,10],[100,90],[130,30],[144,89]]
var lineData=[80,120,160,200,240,280]
// var lineData=[];
// for (var i=-10;i<20;i++){
// lineData.push([i,i*i-2*i]);
// }
//d中传入的只是外边大数据的一级子元素,不一定非得是坐标形式
var line = d3.svg.line()
.x(function(d){
return d;})
.y(function(d,i){
return i%2==0 ? 40:120;})
// .defined(function(d){ //跳过缺失值
// return d<300;
// })
.interpolate("step")
// .tension(0.1);
//svg容器
var svgContainer = d3.select("body").append("svg")
.attr("width",600)
.attr("height",200);
//把path扔到容器中-- lineData和lineFunction,并给d赋属性
var lineGraph = svgContainer.append("g")
.append("path")
.attr("d",line(lineData))
.attr("stroke","blue")
.attr("stroke-width",2)
.attr("fill","none")
.attr("transform","translate(0,20)");
这里interpolate参数为step,所以为台阶型