Buduję wizualizację osi czasu za pomocą d3, gdzie domena może się różnić od kilku dni do kilku dekad. Używam skalę czasową d3 i oś tak:d3.js: pobierz format znacznika ze skali czasu
var timeScale = d3.time.scale()
.domain([firstEvent, lastEvent])
.range([leftPadding, w - rightPadding]);
var timeAxis = d3.svg.axis()
.scale(timeScale)
.orient("bottom");
timeAxis.ticks(5);
Ponieważ domena jest tak zmienny, że jest wygodny w użyciu ticks(x)
który automatycznie wybrać format kleszcza. Mój problem polega na tym, że w niektórych przypadkach rok nie jest pokazany, co jest kluczowe. Moim pomysłem było sprawdzenie formatu zaznaczenia po utworzeniu osi, a jeśli nie zawiera on roku, pokaż go ręcznie obok osi. Jednak nie udało mi się uzyskać formatu znacznika skali; użycie timeScale.tickFormat()
właśnie zwraca funkcję. Jak mogę rozwiązać ten problem?
Możesz wywołać '.ticks()' bez żadnych argumentów, aby uzyskać lokalizacje zaznaczenia. –
@LarsKotthoff Tak, ale '.ticks()' zwraca niesformatowane lokalizacje, więc nie można stwierdzić, czy rok będzie wyświetlany w ich etykietach, o ile widzę. – speedymcs