var area = d3.svg.area().interpolate("monotone").x(function(d) { return x(d.date); }).y0(260).y1(function(d) { return y(d.price); }); //.x()数据点在x轴的坐标d.date //.y1数据点在y轴的坐标d.price,这两个值确定一个数据点的坐标(数值) //.y0相当于转换器[0,260],把y1的值映射到[0-260](像素)显示出来 //area函数的作用就是把这些孤立的点画成一个闭合区域,生成一个path //interpolate("monotone")这里使用贝塞尔曲线画区域故用插值法数据:date,priceJan 2000,300Apr 2000,400Jul 2000,500生成path(数据对应第二个path,小数点已删掉):M 0,260 移动到左下角(0,260),260是总高度C 70,239,314,170,455,130 从起点(2,260)画曲线到455,130S 839,20,910,0 从上点(455,130)画曲线到910,0L 910,260 画直线到910,260C 834,260,606,260,455,260 从上点(910,260)画曲线到455,260S 75,260,0,260Z 从上点(455,260)画曲线到0,260 闭合路径(已经重合)下面点与上面基本一致,只是起点不是左下角,闭合时起点与终点还未重合M 0,156C 731,143,307,103,455,77S 836,12,910,0L910,260C 834,260,606,260,455,260S75,260,0,260Z命令:M 移动到(moveTo) x,y 开始点坐标Z 闭合路径(closepath) 将路径的开始和结束点用直线连接L 直线(lineTo) x,y 当前节点到指定(x,y)节点,直线连接H 水平直线 x 保持当前点的y坐标不变,x轴移动到x,形成水平线V 垂直直线 y 保持当前点的x坐标不变,y轴移动到y,形成垂直线C x1 y1, x2 y2, x y 画笔从【当前的点X0,Y0】绘制一段三次贝塞尔曲线到点(x,y)S x2 y2, x y 特殊版本的三次贝塞尔曲线(省略第一个控制点)