javascript - d3.js 中的 d3.max() 与 math.max() 有什么区别?

标签 javascript d3.js

我正在尝试理解来自

的代码

http://bl.ocks.org/d3noob/e34791a32a54e015f57d

我不明白代码试图缩放以下数据的部分:

// Scale the range of the data

x.domain(d3.extent(data, function(d) { return d.date; }));

y0.domain([0, d3.max(data, function(d) {
                                         return Math.max(d.close); })]); 
y1.domain([0, d3.max(data, function(d) { 
                                         return Math.max(d.open); })]);

为什么我们必须使用 d3.max 并且在 return 语句中还需要 Math.max?

不应该 d3.max(data, function(d) { return d.close ;} ) 足以获得最大数据?为什么我们又需要另一个 Math.max 呢?

最佳答案

以下是d3.max和Math.max的区别——

  1. 与 d3.max() 中的 Math.max() 不同,元素使用自然顺序而不是数字顺序进行比较,即 ["120", "3"] 的最大值是 "3",而最大值[120, 3] 为 120。

  2. d3.max() 忽略数组中传递的未定义值(这对于计算比例域很有用,同时仅考虑数据的定义区域)。

  3. 如果需要 Max 值的数组为空,d3.max() 返回 undefined,而 Math.max() 返回 -Infinity。

希望这些要点能帮助您理解 d3.max() 和 Math.max() 之间的区别..

关于javascript - d3.js 中的 d3.max() 与 math.max() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28592557/

相关文章:

javascript - 在 D3 中创建换行符

javascript - d3.forceCollide() 和 d3.forceX/Y() 具有高 strength() 值之间的冲突

javascript - d3.js 在每个条的末尾堆叠条形图值

javascript - 相反,使用基于 prop 值的数据或计算属性。浏览器

javascript - HTML 进度元素未更新

javascript - 如何使零数值算作真值?

javascript - D3 颜色渐变未围绕区域中心形成数学圆

php - 不是 PHP 与 JS 比较 : Can I do anything in PHP that can be done with JS?

javascript - publicPath 与 react 热加载器

javascript - 使用 HTML5 范围输入操作 d3.js 包布局