更改D3

时间:2015-06-16 06:22:00

标签: d3.js label axis

我想更改图表中y轴的值,例如,不显示[0,18],而是显示[-18,0]。

我的轴的初始代码是:

        var y = d3.scale.linear().range([height, 0]);

        var yAxis = d3.svg.axis()
                  .scale(y)
                  .orient("left");

我试着像这样修改它:

        var yAxisInv = d3.svg.axis()
                  .scale(y)
                  .orient("left")
                  .ticks(10)
                  .tickValues([-18, -16, -14, -12, -10, -8, -6, -4, -2, 0]);  

但它只是向下移动整个轴。我想做的是更改显示的值而不更改数据

在图片中,它看起来像这样:

enter image description here enter image description here enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用tickFormat功能定义各个滴答的显示方式。

我认为以下内容可行:

    var yAxis = d3.svg.axis()
              .scale(y)
              .orient("left");
              .tickFormat(function(d) {
                  return -18+d;
              })