D3.js-次轴对齐

D3.js-次轴对齐,d3.js,alignment,D3.js,Alignment,我已经四处寻找了很长一段时间,似乎我不是唯一一个提出问题但还没有有效答案的人: 通常,我们如何在D3中对齐次轴(Y1记号前面的Y2记号) 我不是特别想要一点代码;即使是一个大致的想法或算法也能帮助我。我们的想法是让这个家伙在Highchart中做的事情: jsfiddle.net/jugal/3qdkc/ 有什么线索吗?您可以使用标尺将投影(屏幕)坐标转换回原始域中的值。考虑到这一点,这一过程非常重要 获取第一个轴的投影值。如果希望这些是刻度值,请使用scale.ticks()并将它们传递到第

我已经四处寻找了很长一段时间,似乎我不是唯一一个提出问题但还没有有效答案的人:

通常,我们如何在D3中对齐次轴(Y1记号前面的Y2记号)

我不是特别想要一点代码;即使是一个大致的想法或算法也能帮助我。我们的想法是让这个家伙在Highchart中做的事情:

jsfiddle.net/jugal/3qdkc/

有什么线索吗?

您可以使用标尺将投影(屏幕)坐标转换回原始域中的值。考虑到这一点,这一过程非常重要


  • 获取第一个轴的投影值。如果希望这些是刻度值,请使用
    scale.ticks()
    并将它们传递到第一个刻度,以转换为屏幕坐标
  • 现在将这些值传递到第二个轴比例的
    scale.invert()
    。这将为您提供第二个刻度域中的值
  • 将这些值传递到第二个轴的
    .tickValues()

获取第一个轴的投影值(例如,通过运行
scale.ticks()
遍历标尺),并将其传递到
scale2.invert()
以获取第二个域的相应值。将这些值传递到第二个轴的
.tickValues()
。非常感谢,最后非常简单!顺便说一句,它帮助我更好地理解D3量表。请张贴作为一个答案,以便我可以验证它。