Tôi đang tạo hình ảnh hóa dòng thời gian với d3 nơi tên miền có thể thay đổi từ vài ngày đến vài thập kỷ. Tôi đang sử dụng một quy mô thời gian d3 và trục như thế này:d3.js: nhận định dạng đánh dấu từ thang thời gian
var timeScale = d3.time.scale()
.domain([firstEvent, lastEvent])
.range([leftPadding, w - rightPadding]);
var timeAxis = d3.svg.axis()
.scale(timeScale)
.orient("bottom");
timeAxis.ticks(5);
Kể từ miền như vậy là biến, nó là thuận tiện để sử dụng ticks(x)
mà sẽ tự động chọn định dạng đánh dấu. Vấn đề của tôi là trong một số trường hợp, năm không được hiển thị, điều đó là rất quan trọng. Ý tưởng của tôi là kiểm tra định dạng đánh dấu sau khi trục được tạo và nếu nó không chứa năm, hãy hiển thị nó theo cách thủ công bên cạnh trục. Tuy nhiên, tôi đã không thể có được định dạng đánh dấu của quy mô; sử dụng timeScale.tickFormat()
chỉ trả về một hàm. Làm thế nào tôi có thể giải quyết vấn đề này?
Bạn có thể gọi '.ticks()' mà không có bất kỳ đối số nào để có được vị trí đánh dấu. –
@LarsKotthoff Có, nhưng '.ticks()' trả về các vị trí chưa được định dạng, vì vậy người ta không thể biết liệu năm đó sẽ được hiển thị trong bất kỳ nhãn nào của họ theo như tôi có thể thấy. – speedymcs