在画布上绘制d3轴刻度,就像在d3轴上绘制缩放一样

时间:2018-09-04 18:43:12

标签: d3.js canvas axis

我正在寻找一种无需使用svg即可在画布上绘制轴刻度的方法。

假设我有一个有效的d3.zoom,并且得到了该缩放和var y; // d3.scale的变换。然后,我可以像这样绘制刻度线:

var yTicks = this.y.ticks(10);
yTicks.forEach(d => {
            context.moveTo(0, y(d) * transform.k + transform.y + 0.5);
            context.lineTo(width, y(d) * transform.k + transform.y + 0.5);
        });

这让我绘制刻度线。但是,这些精度不会像d3.axis那样变化。对于d3轴,该轴的计数采用图表的比例尺。如果有帮助的话,我还有一个d3.axis(目前无用,因为它不能直接渲染到画布上)。

那我该怎么办  -按照d3.axis渲染(作为数据)的方式获取刻度,以便我可以自己渲染  -找到另一种解决方案以使画布和刻度线采用刻度精度

不能将SVG与Canvas一起使用。

0 个答案:

没有答案