【问题标题】:D3 linear scale , how to show customised strings as ticks ?D3线性刻度,如何将自定义字符串显示为刻度?
【发布时间】:2016-06-07 18:41:12
【问题描述】:

我绘制了一个 d3 图表,它表示过去 30 天的一些数据。所以我的 x 轴是线性比例,因为我没有使用日期(而是使用天数)。现在要显示 x 轴,我使用类似

的代码
  var xAxis = d3.svg.axis()
          .scale(x)
          .orient("bottom")
          .outerTickSize(15)
          .ticks(4)

这给了我四个滴答声,如下所示:

现在我的问题是,我想显示以下数组中的刻度标签,而不是这些刻度(数字):

var xArray = ['one month ago', '3 weeks ago', '2 weeks ago', '1 week ago', 'today'];

知道怎么做吗? (我想我不能使用序数比例,因为正在绘制的图形使用线性比例,我不能乱用)

【问题讨论】:

  • 我想我知道你需要什么,但你能提供一个 plunker 吗? (plnkr.co)
  • @AlexeyAyzin 您是否有与以下答案相同的建议?它确实有效
  • 是的。很好地解决了这个问题。

标签: javascript d3.js data-visualization


【解决方案1】:

这应该在我之前发生过,我可以使用不同的(序数)比例来达到轴的目的。无论如何可能会帮助有同样疑问的人

var xScaleForAxis = d3.scale.ordinal()
          .domain(xArray)
          .rangePoints([0, WIDTH]);

现在我可以使用这个比例来获得想要的结果。

 var xAxis = d3.svg.axis()
          .scale(xScaleForAxis)
          .orient("bottom")
          .innerTickSize(-HEIGHT)
          .ticks(4)

这给了我以下想要的结果。

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2017-09-26
    • 2013-02-16
    • 1970-01-01
    • 2016-06-03
    • 2012-07-31
    • 1970-01-01
    相关资源
    最近更新 更多