Skip to main content
 首页 » 编程设计

d3.js之如何在 d3.json 命令中使用 d3.min 和 d3.max

2024年09月07日71JustinYoung

我是 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; }));