我目前正在尝试在同一个 svg 上绘制两个不同的图形。飞机坠毁(在 y 轴上)与飞行的公里数有关。我试图将非致命崩溃和致命崩溃都放在图表上。到目前为止,我只是声明了两类圆并绘制了它们,但我觉得我可以用一个函数更有效地做到这一点。到目前为止我有这个
function myFunc(variable){
count++;
canevas.selectAll(`.c${count}`)
.data(data)
.enter
.append("circle")
.attr("class",`c${count}`)
.attr("cx",d=>echelleKm(d.kmSemaine))
.attr("cy",d=>echelleAccidents(d.variable))
.attr("r",4)
.attr("opacity",.5)
.attr("fill",colors[count-1]);
}
myFunc(accidents85);
myFunc(accidents00);
我在控制台中收到一个错误,说"(index):109 Uncaught ReferenceError: accidents85 is not defined"
,我真的不明白。如果console.log(d3.max(data,d=>d.accidents85)
在声明函数之前执行 a ,我可以在控制台日志中看到一些内容。
我觉得我遗漏了一些明显的东西,但我对 d3.js 和一般编码相当陌生,所以任何帮助将不胜感激。
谢谢 !
编辑:如果我的函数按照我希望的方式工作,我会在此处放一张结果应该是什么的图片
在任何地方都没有调用accidents85
或accidents00
定义变量。由于您只是在数据数组中传递对象的属性名称,因此必须使用引号:
myFunc("accidents85");
myFunc("accidents00");
然后,在您的 中myFunc
,使用括号表示法:
.attr("cy",d=>echelleAccidents(d[variable]))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句