考慮下面給出的代碼從數據中提取列Y域值 -D3.js如何與多個Y軸柱
var height = 500;
var data = [
{
"Product": "A",
"Branch1": 1200,
"Branch2": 2000
},
{
"Product": "B",
"Branch1": 1588,
"Branch2": 3495
}
];
var YAxisList = ["Branch1", "Branch2"];
var maxArray = [];
YAxisList.forEach(function (d) {
data.forEach(function (i) {
maxArray.push(i[d]);
});
});
var y = d3.scale.linear().range([height, 0]);
y.domain([d3.min(maxArray), d3.max(maxArray)]);
我想提取最大值和最小值,以形成Y軸域範圍。我已經通過使用詳細的方式解決了這個問題,但我懷疑必須有一種優雅的方式來實現這一點。有人可以在這方面闡明一些情況嗎?
你可以使用['d3.extent'](https://github.com/mbostock/d3/wiki/Arrays#d3_extent)來簡化'y.domain',但我不認爲你會得到一些東西獲得'maxArray'更清晰。 – nikoshr