分别在D3中格式化多个轴

时间:2015-02-02 21:47:21

标签: javascript d3.js axes

我跟随Scatterplot Matrix example,但我的轴需要不同的格式。我有一些面向时间的变量和一些标准的数字变量。我希望轴具有不同的格式,因为目前,面向时间的标签显示逗号(例如2,005而不是2005)。我试过追加

   .tickFormat(d3.format("d"))

var xAxis = d3.svg.axis()
    .scale(x)
    .orient("bottom")
    .ticks(5)
    .tickFormat(d3.format("d"));

但是这会将所有轴格式化为日期。有没有办法以不同方式格式化每个轴?

1 个答案:

答案 0 :(得分:1)

进一步调低xAxis以渲染轴:

.each(function(d, i) {
  x.domain(domainByTrait[d]);
  d3.select(this).call(xAxis);
});

每个特征d调用一次该函数,因此可以从那里调用

xAxis.tickFormat(d3.format(...))

.tickFormat(d3.time.format(...))

在渲染轴之前。