我见过一个例子d3.svg.line()
如下:
var altitude = some_array() // I read this from a .json file
y = d3.scale.linear().domain([0, d3.max(altitude)]).range([0 + margin, h - margin]),
x = d3.scale.linear().domain([0, altitude]).range([0 + margin, w - margin])
var line = d3.svg.line()
.x(function(d,i) { return x(i); })
.y(function(d) { return -1 * y(d); })
some_svg_group.append("svg:path").attr("d", line(altitude));
虽然我不太了解实际发生的情况,但我知道这是一种生成器函数,其中line().x
和line().y
是一种生成器函数,并且所示的成语是一种具有等距x
数组与实际值的方法y
大批。
不过,我想做的是将两个数组传递给d3.svg.line()
,比如distance
and altitude
,或多或少像这样:
var line = d3.svg.line()
.x(function_that_gives_distance)
.y(function_that_fives_altitude)
some_svg_group.append("svg:path").attr("something", line(some_other_thing));
关于用什么替换这些占位符有什么建议吗?或者,如果他们错了,如何实现呢?