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

我的代码沙箱here

javascript - 如何在D3 Js中将y轴(域)值设置为max-LMLPHP

我正在分别为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))
];


此方法分别使用magnitude / startupMagnitude检查任何数据点的值Math.min()Math.max()较小/较大。然后,它使用d3.min()d3.max()来计算这些值上的全局范围。

10-06 04:16