Javascript 如何打印线生成器的结果?
我有以下代码:Javascript 如何打印线生成器的结果?,javascript,d3.js,Javascript,D3.js,我有以下代码: valuelinePath = svg.append("path") .data([data]) .attr("class", "line2") .attr("d", valueLine) .attr("transform", "translate(42" + ", 70" + ")"); var newvalueLine = d3.line() .x(function(d) { return x(d.years);
valuelinePath = svg.append("path")
.data([data])
.attr("class", "line2")
.attr("d", valueLine)
.attr("transform", "translate(42" + ", 70" + ")");
var newvalueLine = d3.line()
.x(function(d) {
return x(d.years);
})
.y(function(d) {
return y(d[cityName]);
});
valuelinePath
.data([data])
.attr("class", "line2")
.attr("d", newvalueLine)
.attr("transform", "translate(42" + ", 70" + ")")
.style("display", null);
我假设newvalueline是字符串生成器生成的字符串,但不是,当我尝试调试newvalueline的值时,调试器告诉我它是一个函数
newvalueLine
ƒ t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=ee())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}
那么,如何获取newvalueLine的字符串表示形式以进行调试,而不必将其分配给valuelinePath属性并再次检索它呢?为什么它是一个函数而不是字符串
我读到的东西
我假设line生成器返回一个路径字符串,如上面的示例所示?否?它是作为函数创建的,因为在您将数据发送给它之前,它实际上无法创建路径:
valuelinePath
.data([data])
.attr("class", "line2")
.attr("d", newvalueLine) // This is when the path is actually created
这是D3工作方式的一部分,它是声明性的,将其视为您定义的一组规则,然后向其抛出数据以呈现图表
这样,如果数据不同,只需将新数据传递给它,生成器函数就会生成路径<代码>生成器函数是关键-这就是文档所指的内容。要获取线生成器的返回值,即字符串,只需将数据数组传递给它即可。例如:
const data=d3.range(10.map)(d=>[d,d]);
const lineGenerator=d3.line();
console.log(lineGenerator(数据))
valuelinePath
.data([data])
.attr("class", "line2")
.attr("d", newvalueLine) // This is when the path is actually created