我正在使用d3构建时间轴可视化,其中域可以从几天到几十年不等.我正在使用d3时标和轴这样:
var timeScale = d3.time.scale() .domain([firstEvent, lastEvent]) .range([leftPadding, w - rightPadding]); var timeAxis = d3.svg.axis() .scale(timeScale) .orient("bottom"); timeAxis.ticks(5);
由于域是如此可变,因此使用方便ticks(x)
,将自动选择刻度格式.我的问题是,在某些情况下,未显示年份,这是至关重要的.我的想法是在创建轴后检查刻度线格式,如果它不包含年份,则在轴旁边手动显示.但是,我无法获得比例尺的刻度格式; 使用timeScale.tickFormat()
只返回一个函数.我怎么解决这个问题?