我一直在尝试使用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)被覆盖。有没有办法在同一规模上有多个休息时间?
非常感谢任何帮助。
答案 0 :(得分:1)
您的代码在breaks
数组上进行迭代,并在每次迭代时设置discontinuityProvider
属性。每次设置此属性时,都会覆盖以前的值!
解决方案是提供多个休息'直接到不连续提供者:
const scale = fc.scaleDiscontinuous(d3.scaleLinear());
.discontinuityProvider(fc.discontinuityRange([10,20], [50,80]))
.domain([ 100, 0])
.range([content_width,0]);