Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在数组中的3个变量之间切换的条形图_Javascript_D3.js - Fatal编程技术网

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())

谢谢您!还有一个问题:如何将条形图返回到第三个变量之后的组织方式?只需按数据索引对条形图进行排序即可。