D3.js:以序数尺度获得每个独特的价值

时间:2014-05-28 22:43:35

标签: javascript d3.js ordinals

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

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. 假设我是对的,顺序量表中只有四个值,我该如何将它们分类?

2 个答案:

答案 0 :(得分:1)

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

console.log(ordScale.domain());

演示here

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

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

演示here

答案 1 :(得分:0)

ordScale.domain()应该提供您正在寻找的值