Tôi đã có tập dữ liệu Tôi đang vẽ đồ thị với d3.js. Trục x biểu thị thời gian (tính bằng phút). Tôi muốn hiển thị trục này ở định dạng hh:mm
và tôi không thể tìm cách làm việc này trong d3.Làm cách nào để tạo trình định dạng trục tùy chỉnh cho giờ và phút trong d3.js?
đang trục của tôi trông như:
svg.append('g')
.attr('class', 'x axis')
.attr('transform', 'translate(0,' + height + ')')
.call(d3.svg.axis()
.scale(x)
.orient('bottom'));
nào tạo nhãn trong vài phút mà trông giống như [100, 115, 130, 140]
vv
giải pháp hiện tại của tôi là chọn text
yếu tố sau khi họ đã được tạo và ghi đè chúng bằng hàm:
svg.selectAll('.x.axis text')
.text(function(d) {
d = d.toFixed();
var hours = Math.floor(d/60);
var minutes = pad((d % 60), 2);
return hours + ":" + minutes;
});
Trục đầu ra này ticks như [1:40, 1:55, 2:10]
, v.v.
Nhưng điều này cảm thấy khó chịu và tránh sử dụng d3.format
. Có cách nào tốt hơn để tạo các nhãn này không?
Tôi cho rằng tôi nên đã đề cập, trường hợp sử dụng của tôi là một biểu đồ (với các đối tượng binned đại diện cho thời gian). Vì tôi khá chắc chắn điều này đã thiết lập một quy mô thứ tự, tôi đã không thể thực hiện công việc này. Có lẽ tôi chỉ trộn các khái niệm không tương thích? Đây là mã của tôi (trục ở dưới cùng): http://pastebin.com/Wkcexcgr – matthewsteele
Tôi đã chỉnh sửa câu trả lời của mình và thêm ví dụ về cách sử dụng kỹ thuật thứ hai cùng với biểu đồ thời lượng. – mbostock
Điều này đã làm điều đó. Cảm ơn tất cả sự giúp đỡ của bạn! Thực sự ngạc nhiên trước những gì bạn đã xây dựng. – matthewsteele