2013-10-08 3 views
9

Я хочу нарисовать ось с крупными и второстепенными тиками по-разному.Основные и второстепенные клещи с V3 D3?

Этот пример http://bl.ocks.org/vjpgo/4689130 делает примерно то, что я хочу, но я не могу заставить его работать с V3 D3.

Есть .subDivide() устаревший метод? Я не вижу его в текущей документации: https://github.com/mbostock/d3/wiki/SVG-Axes

Если да, то какой лучший подход к рисованию основных и второстепенных тиков в V3 D3? Должен ли я рисовать две совершенно разные оси?

+0

Yep обесценивается как указано [здесь] (https://github.com/mbostock/d3/releases/tag/v3.3.0) – user1614080

ответ

19

В последней версии нет ничего, чтобы рисовать второстепенные тики, как указано в предыдущих версиях, но нет необходимости рисовать другую ось для достижения желаемого. Вы можете использовать масштаб для генерации дополнительных тиков, а затем использовать знакомый шаблон .data() для рисования линий для тех, для которых уже нет линий.

xaxisg.selectAll("line").data(x.ticks(64), function(d) { return d; }) 
    .enter() 
    .append("line") 
    .attr("class", "minor") 
    .attr("y1", 0) 
    .attr("y2", -60) 
    .attr("x1", x) 
    .attr("x2", x); 

xaxisg является контейнером, в котором ось была составлена ​​раньше. Масштаб используется для генерации необходимого количества тиков, а совпадение выполняется самими данными. Это означает, что никаких дополнительных тиков для тех, которые уже существуют при использовании выбора .enter(), не будет.

Полный jsfiddle here.

+0

Это замечательно, спасибо. – Richard

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