【问题标题】:D3.js: getting every unique value in an ordinal scaleD3.js:按顺序获取每个唯一值
【发布时间】:2014-05-28 22:43:35
【问题描述】:

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

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. 假设我是对的,并且序数表中只有四个值,我该如何按字母顺序排列它们?

【问题讨论】:

    标签: javascript d3.js ordinals


    【解决方案1】:

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

    console.log(ordScale.domain());
    

    演示here.

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

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

    演示here.

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2022-01-04
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-22
        • 2021-12-15
        相关资源
        最近更新 更多