2013-03-20 3 views
4

Я создал простую гистограмму в d3 и отформатирую ось y с помощью «.ticks (3)», что означает, что я хотел бы видеть 3 метки. Однако, в зависимости от данных, я иногда вижу 3 метки, а иногда вижу 4. Кроме того, даже когда у меня есть 3 метки, тики находятся примерно на 1/4 над меткой оси, а затем на 50%, затем на другой на 3/4. Как заставить d3 установить три осевые метки, одну внизу, одну в середине и одну вверху?Как указать количество меток оси в d3?

ответ

4

Вы можете передать массив тиков на ось, а затем ось будет строить галочки в точках массива.

Вот пример кода. Создается ось, которая работает от 0 до 100. Отметки меток отображаются на 0, 50, 60 и 100 в соответствии с массивом «тиков».

svg = d3.select("svg") 

var myScale = d3.scale.linear() 
     .domain([0,100]) 
     .range([0,400]); 


var ticks = [0,50,60,100]; 

var myAxis = d3.svg.axis() 
    .scale(myScale) 
    .tickValues(ticks); 

svg.append("g") 
.attr("class", "axis") 
.call(myAxis) 
.attr("transform","translate(100,100)"); 

Вот это интерактивный пример: http://tributary.io/inlet/5207532

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