【问题标题】:D3.js: can I offset tick labels from tick lines?D3.js:我可以从刻度线偏移刻度标签吗?
【发布时间】:2013-09-27 10:55:03
【问题描述】:

我在 D3.js 中工作,我想绘制一个带有从刻度线偏移的刻度标签的轴。

图片可能是解释这一点的最佳方式:

所以白色刻度线与 Jan/Feb/Mar 刻度标签不在同一个位置,而是沿 x 轴偏移。

我目前对 x 轴使用序数系列,并传入一组显式 tickValues

我看不到任何方法可以从D3 axis documentation 中的刻度标签中偏移刻度线。我应该简单地手动绘制刻度吗?

【问题讨论】:

    标签: d3.js label


    【解决方案1】:

    这确实不直接受支持,但您确实有几个选择。

    • 您可以有两个不同的轴,一个用于刻度,一个用于标签。
    • 您可以使用主要和次要刻度来破解它。请参阅this question 的第一个答案。
    • 您可以明确选择标签并偏移它们。请参阅the same questionthis mailing list thread 的其他答案。

    根据您想要做什么,一种解决方案可能比其他解决方案更好。特别是,您需要考虑是否希望所有这些都动态更新。

    【讨论】:

      【解决方案2】:

      您可能需要考虑使用D3FC,它可以直接替换支持此功能的 D3 轴组件。

      使用 D3FC,您可以将 D3 轴换成 D3FC 序数轴,如下所示:

      const axis = fc.axisOrdinalBottom(scale);
      

      D3FC 序数轴在每个条的中心渲染标签,以及中间的刻度,如下所示:

      全面披露 - 我是 D3FC 项目的维护者和积极贡献者。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 2016-06-03
        • 2013-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多