我是 d3 和 Javascript 的新手。我玩过 choropleth 示例,但现在想进行一些更详细的更改。其中之一是找到我用作输入的 JSON 的最大值和最小值。
我的问题很简单,因为对象下方的代码片段已正确输出到 console.log(data) 命令的控制台,但是整个对象也为 min 和 max 语句输出,而不仅仅是 min 和最大限度。
d3.json("data/unemployment_by_state.json", function(data) {
console.log(data);
console.log(d3.min([data]));
console.log(d3.max([data]));
});
这是 JSON 对象的片段:
{"01":32710,"02":20280,"03":18002}
我想要帮助的是理解为什么 d3.min([data]) 和 d3.max([data]) 导致整个对象输出到控制台,而不是数据对象中的最小值和最大值.
提前致谢。
请您参考如下方法:
如果您的数据是一个数组,那么您的原始代码将起作用,如果您去掉数据周围的括号:
var data = [32710,20280,18002];
console.log(data);
console.log(d3.min(data));
console.log(d3.max(data));
如果您需要使用键“01”、“02”、“03”来识别数组值,请创建一个对象数组,并对这些值进行操作以获得最小值/最大值:
//data as key/value pairs
var data = [
{key: "01", value: 32710},
{key: "02", value: 20280},
{key: "03", value: 18002}
];
console.log(data);
console.log(d3.min(data, function(d) { return d.value; }));
console.log(d3.max(data, function(d) { return d.value; }));
// AND IF YOU WANT THE min/max of the KEYS:
console.log(d3.min(data, function(d) { return d.key; }));
console.log(d3.max(data, function(d) { return d.key; }));