如何为dc js box plot设置y域?它处理负值吗?

时间:2016-01-04 16:01:21

标签: javascript d3.js dc.js crossfilter

要点:

我对dc.js盒子图表有疑问。我无法为图表的y轴成功设置域。盒子图也可以处理负值吗?

详细信息:

我在控制台上收到错误:

  

错误:< circle>的值无效属性cy =" NaN"

仔细检查发现问题确实与盒子情节有关。相关代码如下:

alltwtssearchtrackdim = alltwtsndx.dimension(function (d) {return d.searchtrack;});

alltwtssearchtrackboxplotgroup = alltwtssearchtrackdim.group().reduce(
    function(p,v) {
        p.splice(d3.bisectLeft(p, v.sentiment), 0,v.sentiment);
        return p;
    },
    function(p,v) {
        p.splice(_.indexOf(p, v.sentiment, true), 1);
        return p;
    },
    function() {
        return [];
    }
);

boxplotsentiment 
.width(500)
.height(250)
.margins({top: 10, right: 50, bottom: 30, left: 30})
.y(d3.scale.linear().domain([-1.000, 1.000]))
.dimension(alltwtssearchtrackdim)
.group(alltwtssearchtrackboxplotgroup)
.elasticY(true)
.elasticX(true)
boxplotsentiment.tickFormat(d3.format('.3f'));

现在情绪可能从-1到+1不等。它与推文相关的情绪,而搜索轨道是一个序数变量。我查了一下这个小组。计算值数组和四分位数。

我遇到的问题:

  1. 无法将y轴域设置在-1和+1
  2. 之间
  3. 我在控制台上遇到的错误:是否由于负值?
  4. 请帮助

1 个答案:

答案 0 :(得分:2)

不完全是您问题的答案,但在处理小数字时,我在将y轴拟合到值范围时遇到了问题。结果是the y axis extent is too large on small numbers。在这些情况下,请尝试设置

  .elasticY(true)
  .yAxisPadding('10%')

yAxisPadding的其他一些理智值。