我正在寻找一种无需使用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一起使用。