D3线性刻度,如何将自定义字符串显示为刻度线?

时间:2016-06-07 18:41:13

标签: javascript d3.js data-visualization

我绘制了一个d3图表,表示过去30天内的一些数据。所以我的x轴是线性刻度,因为我没有使用日期(而是使用天数)。现在要显示x轴,我使用代码像

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

这给了我四个滴答,如下所示: enter image description here

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

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

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

1 个答案:

答案 0 :(得分:3)

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

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

现在我可以使用这样的比例来获得所需的结果。

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

这给了我以下期望的结果。

enter image description here