D3.js图的问题 - 单个数据元素不会出现

时间:2015-11-29 17:02:42

标签: d3.js

我有一个D3.js图表​​,当(a)有多个数据元素要图表时,以及(b)如果有正数和负数的混合,但我有问题,如果它打破了这些规则中的任何一个。

我认为问题可能在于如何计算y域,或者如何使用d3.scale.linear()计算y比例。

我已经创建了一个jsfiddle项目来显示问题。 Javascript面板顶部有三个数据集 - 如果你在/ out中注释数组,你可以看到问题:

http://jsfiddle.net/L2wrnecm/

  //data = [["A",-1],["B",2]];  //this works
  data = [["A",1],["B",2]];     //this doesn't work - 0 scale is off when 
                                //both are positive
  //data = [["A",-1]];          //this does not work - with only element it 
                                //does not show up

感谢您的帮助 - fc

1 个答案:

答案 0 :(得分:0)

听起来你需要对你的程度进行一些检查:

var extent = d3.extent(data, function(d){return d[1]});
extent[0] = extent[0] > 0 ? 0 : extent[0];
extent[1] = extent[1] < 0 ? 0 : extent[1];

yScale
  .domain(extent)                
  .range([height - margin.top - margin.bottom, 0])
  .nice();

更新fiddle