我正在尝试使用d3创建地图可视化。 我已经启用了地图,正在尝试在地图上添加点。 根据CSV文件中的某些其他数据(检查结果),我希望某些点具有不同的颜色。 我可以使用此代码添加点,但是我无法正确显示颜色(应该是红色,但所有颜色都是绿色)。我认为这是我尝试获取数据的方式的问题,或者通常是我的JavaScript的问题。任何帮助,将不胜感激。谢谢!
$arr_out = array_reduce (
$arr_in, // Input Array
function($out,$item) {
return
count(
array_filter(
$out,
function($e) use(&$item) {
// Check if keys match
return $e["from"]["id"] == $item["from"]["id"];
}
)
) > 0 ?
$out :
array_merge($out,array($item));
},
array()
);
答案 0 :(得分:0)
这可以通过将最后一行更改为:
.attr("fill", d => d3.color(colorr(d.InspectionScore))));
之所以起作用,是因为d3的attr
允许您从函数中获取属性值。在这种情况下,您要将数据元素转换为 red 或 blue 。这就是上述代码中箭头功能的作用。等效于:
.attr("fill", function(d) {
return d3.color(colorr(d.InspectionScore));
})
要深入了解D3的工作原理,可以检查tutorials。