d3fc / d3.js如何堆叠多个不连续点

时间:2017-12-11 20:45:17

标签: d3.js d3fc

我一直在尝试使用d3fc / d3.js创建一个包含多个中断的比例。例如,这就是我试图创建一个从0到100的刻度,从10到20和50到80的中断:

 var scale = fc.scaleDiscontinuous(d3.scaleLinear());
 breaks = [[10,20],[50,80]];

 for (break_index in breaks){

    b = breaks[break_index];
    scale.discontinuityProvider(fc.discontinuityRange(b));

 }


scale.domain([ 100, 0])
     .range([content_width,0]);

然而,这仅返回一个50-80的中间刻度,意味着第一个中断(10-20)被覆盖。有没有办法在同一规模上有多个休息时间?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您的代码在breaks数组上进行迭代,并在每次迭代时设置discontinuityProvider属性。每次设置此属性时,都会覆盖以前的值!

解决方案是提供多个休息'直接到不连续提供者:

const scale = fc.scaleDiscontinuous(d3.scaleLinear());
  .discontinuityProvider(fc.discontinuityRange([10,20], [50,80]))
  .domain([ 100, 0])
  .range([content_width,0]);