在“我的D3”图表中,如何将yDomain
设置为最大值。有什么建议么 ?
如果在nov 10
上看到我的line
和area
开箱即用。
我的代码沙箱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))
];
此方法分别使用
magnitude
/ startupMagnitude
检查任何数据点的值Math.min()
或Math.max()
较小/较大。然后,它使用d3.min()
和d3.max()
来计算这些值上的全局范围。