D3 TickFormat显示ISO周数

时间:2018-01-17 18:50:51

标签: d3.js

d3(4.11.0)

我有一个x轴,显示每周开始时的周数。是否可以显示ISO周编号?

目前我的x轴定义如下:

this.xAxisTertiary
            .ticks(d3.timeMonday.every(1))
            .tickFormat(d3.timeFormat('Week %W')); // Week 16

我在这里阅读API Reference%V会将周编号格式化为ISO周编号,但也许我遗漏了一些内容。

谢谢。

1 个答案:

答案 0 :(得分:1)

在d3 v4.12(change log

之前,未添加%V格式选项

否则你的代码应该没问题:



var width = 500;
var height =400;

var svg = d3.select("svg")
  .attr("width",width)
  .attr("height",height);
  
var g = svg.append("g");

var parse = d3.timeParse("%B %d, %Y");
var domain = [parse("January 1, 2017"), parse("January 1, 2018")]


var x = d3.scaleTime()
    .domain(domain)
    .range([10, width-10]);


g.append("g")
    .attr("transform", "translate(10,150)")
    .attr("class", "axis")
    .call(d3.axisBottom(x)
        .ticks(20)
        .tickFormat(d3.timeFormat("Week %V"))
     )
    

<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.12.0/d3.min.js"></script>

<svg></svg>
&#13;
&#13;
&#13;