使用svg绘制图表时,通常需要“翻转” y轴/比例:
使用d3.scaleLinear(),我知道有两种方法可以做到这一点:
var yScale = d3.scaleLinear().domain([vx1, vx0]).range([0, 400]);
var yScale = d3.scaleLinear().domain([vx0, vx1]).range([400, 0]);
这两种方法似乎都不理想。如果我想对范围或域进行进一步的计算,通常有利的是在domain [0] / range [0]处使用较小的值,在domain [1] / range [1]中使用较高的值。翻转其中之一可能会引起混乱。
这两种方法中哪个更常见或推荐?还是有第三种方式,秤本身会翻转,但范围和域都具有“正确”的顺序?
答案 0 :(得分:1)
我会总是把.range()
倒过来,因为这更加正确。比例尺的目的是将输入数据范围转换为输出像素范围。在这种情况下,数据范围符合您的预期,但是像素坐标被反转了,因此反转了范围。