3

我想以序数比例获取每个唯一值(从数组的数组构建)。假设这是我的数据集:

var people = [
  ["Mary", "Mary Smith", "ID00001", 9.99 ],
  ["James", "James Smith", "ID00002", 19.99 ],
  ["Frank", "Frank Black","ID00003", 19.96  ],
  ["Mary","Mary Brown","ID00004", 9.95  ],
  ["Tony", "Tony Stark", "ID00005", 2319.99 ],
  ["Frank", "Frank Howard","ID00006", 219.96  ],
  ["Mary","Mary Brown","ID00004", 339.95  ]
];

然后我根据这些数据构建我的规模:

var ordScale = d3.scale.ordinal()
               .domain(people.map( function (d) { return d[0]; }))
               .rangeBands([0, 10], 0); 

也就是说,尽管有六个不同的人,但我的域中最终只有四个名字(据我所知!):

  • 玛丽
  • 詹姆士
  • 坦率
  • 托尼

我对此有两个问题:

  1. 如何检查 console.log 中的序数比例?
  2. 假设我是对的并且序数比例中只有四个值,我如何按字母顺序排列它们?
4

2 回答 2

1

基本上,您可以检查有关比例的两件事——域和范围。听起来您对域感兴趣,因此您可以通过调用相应的方法来检查:

console.log(ordScale.domain());

演示在这里

至于您的第二个问题,您可以在将数组传递给之前简单地对数组进行排序.domain()

people.map( function (d) { return d[0]; }).sort();

演示在这里

于 2014-05-29T07:28:29.350 回答
0

ordScale.domain()应该给出你正在寻找的值

于 2014-05-29T04:16:39.380 回答