#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
})
}