Подсчитайте количество галочек в D3.js

#d3.js

#d3.js

Вопрос:

Как я могу получить количество отметок, которые в данный момент находятся на оси x в D3.js ?

По сути, я хочу подсчитать, сколько там галочек.

Комментарии:

1. Как насчет axis.tickValues().length ? Из документации axis.tickValues() вернет текущие значения тиков, если аргумент не передан.

2. @mdml Нет, это не работает. Вот скрипка. jsfiddle.net/sqY5b/2 (Я прокомментировал предупреждение, вы можете это видеть)

3. Глядя на JSFiddle, поскольку вы не задаете .tickValues() явно, вы можете просто использовать xAxis.ticks() (который возвращает 10 ).

4. Но это неправда. Я хочу, чтобы на оси x не было тиков. Поэтому я хочу, чтобы мой результат был равен 13.

5. Извините, пропустил, что вы используете весы. xScale.ticks().length даст вам 13 .

Ответ №1:

Поскольку вы используете шкалу для установки отметок для вашей оси x, вы можете рассчитать количество отметок следующим образом:

 >> xScale.ticks().length;
13
 

Ответ №2:

Если вы используете D3.js V5 с DC.js , вы можете использовать следующее в качестве альтернативы:

 chart.on('pretransition', (chart) => {
  const svg = chart.select('svg');
  let totalXAxisTicks = 0;       // Total X Axis Ticks Variable

  // Get Total Number of X Axis Ticks
  svg.selectAll("rect.bar")
    .each(function (data) {
      totalXAxisTicks  = 1;      // Will loop through each tick
    })
}