Как отключить мелкие тики в логарифмической шкале d3?

У меня есть график логарифмической шкалы d3 в реальном времени, как показано ниже:

мой график логарифмического масштаба в реальном времени

Я хотел бы показать только основные тики с их метками: 10^-2, 10^-1, 10^0, 10^1, 10^2

но не мелкие галочки

Я хотел бы, чтобы ось журнала Y выглядела так без второстепенных галочек:

введите здесь описание изображения

Как я могу это сделать?

EDIT: опубликуйте код

svg = d3.select("#chart1").append("svg")
.attr("width", width + margin.left + margin.right)
.attr("height", height + margin.top + margin.bottom);

y = d3.scale.log().domain([1e-1, 1e2]).range([height, 0]);

yAxis = d3.svg.axis().scale(y).orient("left");

svg.selectAll("g.y.axis")
.call(yAxis)    
.selectAll(".tick text")
.text(null)
.filter(powerOfTen)
.text(10)
.append("tspan")
.attr("dy", "-.7em")
.text(function(d) { return Math.round(Math.log(d) / Math.LN10); });

Вам также может быть интересно узнать, как получить пользовательскую метку powerOfTen. Если это так, вам может понадобиться здесь

EDIT: вы можете редактировать мой jsfiddle


person jhyap    schedule 19.04.2014    source источник
comment
Укажите галочки явно с помощью .tickValues().   -  person Lars Kotthoff    schedule 19.04.2014


Ответы (1)


предложено Ларсом Коттоффом

var yAxis = d3.svg.axis().scale(y).tickSize(0).tickValues([1e-1,1e0,1e1,1e2]).orient("left");

этот ответ заставляет label, но major tick не рисуется.....

person jhyap    schedule 19.04.2014
comment
Это решение плохо масштабируется. Если данные, скажем, около 1e4, тики будут отсутствовать. - person VividD; 20.04.2014
comment
вы всегда можете обновить tickValue в каждом цикле на основе максимальных данных push. Но я все еще жду другого более удобного ответа - person jhyap; 20.04.2014