【问题标题】:Problems with D3.js graph - single data element won't show upD3.js 图的问题 - 单个数据元素不会显示
【发布时间】:2015-11-29 17:02:41
【问题描述】:

我有一个 D3.js 图表,当 (a) 有多个数据元素要绘制和 (b) 如果有正数和负数的混合,但如果它中断我会遇到问题这些规则中的任何一个。

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

我创建了一个 jsfiddle 项目来显示问题。 Javascript 面板顶部有三个数据集 - 如果您在输入/输出数组中添加注释,您会发现问题:

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

【问题讨论】:

    标签: d3.js


    【解决方案1】:

    听起来您只需要检查一下您的范围:

    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

    【讨论】:

    • 那行得通,非常感谢你,它把我带到了我需要去的地方。马克,我欠你一杯啤酒。这是修改后的 jsFiddle 链接:jsfiddle.net/L2wrnecm/2 再次感谢。
    猜你喜欢
    • 2021-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    相关资源
    最近更新 更多