2016-02-23 3 views
1

Я попытался создать гистограмму, показывающую дни каждого месяца в году. Я хочу изменить числа по оси x гистограммы, но оказывается, что число начинается с 0 и заканчивается на 11 вместо 1 до 12. Как я могу решить эту проблему?Как изменить ось x в D3?

//x 
var xScale = d3.scale.ordinal() 
    .domain(d3.range(dataset.length)) 
    .rangeRoundBands([0, width - padding.left - padding.right]); 

//y 
var yScale = d3.scale.linear() 
    .domain([0,d3.max(dataset)]) 
    .range([height - padding.top - padding.bottom, 0]); 

//the define of x 
var xAxis = d3.svg.axis() 
    .scale(xScale) 
    .orient("bottom"); 

//define of y 
var yAxis = d3.svg.axis() 
    .scale(yScale) 
    .orient("left"); 


/add x 
svg.append("g") 
    .attr("class","axis") 
    .attr("transform","translate(" + padding.left + "," + (height - padding.bottom) + ")") 
    .call(xAxis); 

enter image description here

+0

установить другой домен для 'xScale'. –

+0

Я тоже думал об изменении домена .. bur тоже перемещает элементы бара. Предпочитаете менять метки с помощью tickformat() на xaxis –

ответ

0

использование tickformat() для форматирования метки осей как:

var xAxis = d3.svg.axis() 
    .scale(x) 
    .orient("bottom") 
    .tickFormat(function(d) { return d + 1; }); //make changes here relevant to ur data 
+0

Могу ли я задать вам другой вопрос? Если я хочу изменить число месяцев на что-то вроде «Январь, февраль», как я могу это сделать? – Miranda

+0

Создайте массив месяцев: var months = ["Jan", "Feb" ... и .tickFormat (function (d) {return months [d];}); –

+0

Спасибо! Ваш совет действительно полезен! – Miranda

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