使用序数刻度创建d3 v4直方图

时间:2017-02-08 08:52:22

标签: javascript d3.js

这是我的一段代码,我无法获取垃圾箱中的数据。 我是d3的新手,我认为序数或规模带有一些问题。任何人都可以提供帮助。

    dom = (data.map(function(d) { return d[attri]; }));

    x = d3.scaleBand()      
   .range([0,width])
   .paddingInner([0.1])
   .paddingOuter([0.3])
   .align([0.5]);

   x.domain(dom);

   bins = d3.histogram()
  .domain(x.domain)
  (mydata);

1 个答案:

答案 0 :(得分:0)

这里有两个问题。

第一个问题,domain作为一个吸气剂(以及作为一个设定者)有括号:

x.domain()

但是,遗憾的是,这不能修复您的代码,您无法做到:

bins.domain(x.domain())

...用于您的直方图域,具有您的比例。原因是第二个问题:

在d3直方图中,domain是一个包含两个值(最小值和最大值)的数组。根据文件:

  

如果指定了domain,则将域访问器设置为指定的函数或数组并返回此直方图生成器[...]直方图域定义为数组[min,max],其中min是最小可观察值, max是最大可观察值;两个值都是包容性的。生成直方图时,将忽略此域之外的任何值。 (source

但是,现在,您的x.domain()是一个包含多个值的数组(来自data.map)。您可以x.domain()设置直方图域,如果您的比例是线性的。

因此,请正确设置直方图域。