2014-10-23 2 views
4

Я использую d3.time.scale для создания оси х, а домен находится в пределах от 1980 до 2013 (год) Однако значение клещ отображается только ДО 2012, а не 2013.Как отобразить значение для конечного тика по оси в D3?

Я попытался .ticks() , но конечное значение галочки пока не отображается до тех пор, пока количество тиков не достигнет 25 ...

Хотя я могу добавить окончательное значение, вручную увеличив домен до 2014 года, есть ли способ показать значение галочки для последнего тика?

xAxis = d3.svg.axis() 
     .scale(xScale).tickSize(20) 

var maxYear = format.parse('2014') 

xScale = d3.time.scale().domain([min,max]) 
    .range([100,width-200]) //domain = [1980 ~ 2013] 


var min = d3.min(data, function(d) { 
    return d.Year;    // + operator converts string to number. 
}) 

var max = d3.max(data, function(d) { 
    return d.Year; 
}) 

Заранее спасибо.

ответ

4

Вы пытались использовать .nice()?

https://github.com/mbostock/d3/wiki/Time-Scales#nice

Это должно сделать работу:

xScale = d3.time.scale().domain([min,max]) 
    .range([100,width-200]) //domain = [1980 ~ 2013] 
    .nice() 
+0

Кажется, не имеет никакого эффекта –

+0

@CodeWhisperer Вы можете использовать d3 v4. Терминология немного отличается: 'scaleTime' вместо' time.scale'. Функция 'nice' все еще здесь, посмотрите [d3.js v4 documentation] (https://github.com/d3/d3-scale/blob/master/README.md#time_nice) –

Смежные вопросы