Javascript 在数组中的3个变量之间切换的条形图
我有一个条形图,它使用以下数据集表示三维:Javascript 在数组中的3个变量之间切换的条形图,javascript,d3.js,Javascript,D3.js,我有一个条形图,它使用以下数据集表示三维: var dataset = [ [5, 23, 75], [10, 14, 34], [13, 67, 23], [19, 10, 65], [21, 42, 29], [25, 25, 25], [22, 90, 30], [18, 57, 17], [15, 25, 35], [13, 26, 39], [11, 17, 85], [12, 36, 24], [15, 60, 45], [20
var dataset = [
[5, 23, 75],
[10, 14, 34],
[13, 67, 23],
[19, 10, 65],
[21, 42, 29],
[25, 25, 25],
[22, 90, 30],
[18, 57, 17],
[15, 25, 35],
[13, 26, 39],
[11, 17, 85],
[12, 36, 24],
[15, 60, 45],
[20, 41, 11],
[18, 77, 33],
[17, 85, 55],
[16, 23, 44],
[18, 35, 23],
[23, 55, 15],
[25, 45, 100]
];
有一个由svg元素构成的条形图和一个对条形图重新排序的函数:
var sortBars = function() {
svg.selectAll("rect")
.sort(function(a, b) {
if (sortOrder) {
return d3.ascending(a[0], b[0]);
}
})
.transition()
.duration(1000)
.attr("x", function(d, i) {
return xScale(i);
});
svg.selectAll("text")
.sort(function(a, b) {
if (sortOrder) {
return d3.ascending(a[0], b[0]);
}
})
.transition()
.duration(1000)
.attr("x", function(d, i) {
return xScale(i) + 2.5;
});
};
这将按数组中的第一个变量对条形图/文本重新排序,但我希望用户在单击条形图时依次看到其他两个变量(a[1],b[1]&a[2],b[2])。我这样做是为了一个项目,我的导师建议使用模数(%)操作符在这些变量之间切换,但我什么也没想到!我尝试过用if…else函数在两个变量之间切换,但我认为这不是解决方案。提前谢谢 您的指导老师想说的是,如果您设置了计数器,
计数器%3
将返回除法的剩余部分乘以3,有效地循环0、1和2。请看这里:
console.log(d3.range(50).map(d=>d%3.join())
谢谢您!还有一个问题:如何将条形图返回到第三个变量之后的组织方式?只需按数据索引对条形图进行排序即可。