javascript - 如何在 D3 Js 中将 y 轴 (yDomain) 值设置为最大值

标签 javascript d3.js

在我的 D3 图表中,如何将 yDomain 设置为最大值。有什么建议 ? 如果我们在11月10日看到我的linearea即将开箱即用。

我的代码沙箱 here

enter image description here

我正在分别计算 yDomainMagnitude 和 yDomainStartupMagnitude 的两个域,但现在如何合并或取两者的并集并分配给 yDomain。

   var yDomainMagnitude = d3.extent(data, function(d) {
      return d.magnitude;
    });

    var yDomainStartupMagnitude = d3.extent(data, function(d) {
      return d.startupMagnitude;
    });

    var yDomain = yDomainStartupMagnitude; // here I have to have union of both and assign.

    var xScale = d3
      .scaleTime()
      .range([0, width])
      .domain(xDomain);
    var yScale = d3
      .scaleLinear()
      .range([height, 0])
      .domain(yDomain);

最佳答案

有多种方法可以就地计算yDomain。你的显然可以工作,但是可以大大简化:

var yDomain = [
  d3.min(data, d => Math.min(d.magnitude, d.startupMagnitude)),
  d3.max(data, d => Math.max(d.magnitude, d.startupMagnitude))
];

此方法使用 Math.min()/Math.max( ),分别针对任何数据点。然后,它利用 d3.min()d3.max() 计算这些值的全局范围。

关于javascript - 如何在 D3 Js 中将 y 轴 (yDomain) 值设置为最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57903947/

相关文章:

javascript - 使用复选框启用调用拖动

javascript - 来自嵌套数据的组和行

javascript - 我应该为我编写的每个 JavaScript 函数设置 'use strict' 吗?

javascript - 当调用 destroy() 时,AngularJS 在控制台上显示错误

javascript - IntelliJ 可以在 Internet Explorer 中运行客户端 JavaScript 代码吗?

javascript - 从 JavaScript 调用 Angularjs $scope, "Uncaught TypeError: Cannot read property",angular.element

javascript - 在 Javascript 中从自定义类型写入数组

javascript - d3.js 具有相同父 Node 的树 Node

javascript - 如何使用 d3 中的键选择对象中的值

javascript - 在 .generate() 之后和 .load() 之前将参数传递给 c3js 工具提示