Javascript 如何重新设置轴标签的格式?

Javascript 如何重新设置轴标签的格式?,javascript,d3.js,Javascript,D3.js,我已经开始学习D3,很多教程都是为v3编写的。我阅读了很多v4的文档,但是我不知道如何格式化我的axis标签。现在,我有一个可视化,看起来像这样: 月份重叠并不理想。我知道我可以使用“%b”来使用缩写月份。但我不确定它在语法上是否合适。我的下轴代码是: svg.append("g") .attr("transform", "translate(0," + height + ")") .call(d3.axisBottom(x) .ticks(d3.timeMonth.every(

我已经开始学习D3,很多教程都是为v3编写的。我阅读了很多v4的文档,但是我不知道如何格式化我的axis标签。现在,我有一个可视化,看起来像这样:

月份重叠并不理想。我知道我可以使用“%b”来使用缩写月份。但我不确定它在语法上是否合适。我的下轴代码是:

svg.append("g")
  .attr("transform", "translate(0," + height + ")")
  .call(d3.axisBottom(x)
    .ticks(d3.timeMonth.every(4)));
我本以为会是这样的

format = d3.time.format("%b")
svg.append("g")
  .attr("transform", "translate(0," + height + ")")
  .call(d3.axisBottom(x)
    .ticks(format(d3.timeMonth.every(4))));

但这不起作用。我知道这可能很简单,但我不明白。

你应该使用
tickFormat
而不是
ticks

.tickFormat(d3.timeFormat("%b"))
下面是一个演示:

var svg=d3.选择(“svg”)
var scale=d3.scaleTime()
.范围([20480])
.domain([new Date(),new Date().setYear(new Date().getFullYear()+1)]);
变量轴=d3。轴底(刻度)
.tickFormat(d3.timeFormat(“%b”))
.滴答声(d3.时间月);
svg.append(“g”)
.attr(“变换”、“平移(0,50)”)
.呼叫(安讯士)


是的,这很有效。有没有混合时间格式的方法?理想情况下,我希望在每年的第一个月有年份编号(“%Y”)。这可能吗?只是一个旁注:在D3V4.x中是
D3.timeFormat
,而不是
D3.time.format
。。。你应该因此而得到一个错误!