2013-12-17 14 views
11

Gặp sự cố khi định dạng trục x của biểu đồ chuỗi thời gian này bằng cách sử dụng d3 js.d3 trục x quy mô thời gian với dấu thời gian unix

Dưới đây là một ví dụ làm việc: http://tributary.io/inlet/7798421

Vấn đề: Tôi chỉ có thể xem 1 ngày (nhãn) trên của tôi trục x, bất kể tổng số # tick quy định. Làm thế nào tôi có thể hiển thị thời gian trên trục x với 4-6 bọ ve?

EDIT: Giải pháp dưới đây nhờ Lars.

Đây là thời gian của tôi trong UTC:

var data = [ 
    {"time": 1387212120, "open": 368, "close": 275, "high": 380, "low": 158}, 
    {"time": 1387212130, "open": 330, "close": 350, "high": 389, "low": 310}, 
    {"time": 1387212140, "open": 213, "close": 253, "high": 289, "low": 213}]; 

data.forEach(function(d){ d.time = new Date(d.time * 1000) }); 

Và sau đó D3 chấp nhận nó, ở định dạng mặc định, hoặc bạn có thể tùy chỉnh.

Trả lời

24

Vấn đề là Javascript Date đối tượng (mà bạn đang chuyển đổi rõ ràng dấu thời gian của bạn) không phải là dấu thời gian tính bằng giây, mà tính bằng mili giây. Nếu bạn nhân tất cả các giá trị thời gian của mình cho 1000, nó hoạt động.

Ví dụ hoàn chỉnh here. Tôi cũng đã thực hiện chuyển đổi thành rõ ràng là Date.

+0

Tuyệt vời, trải nghiệm đầu tiên với Thời gian dưới dạng trục X, giải pháp đơn giản và đáng kinh ngạc để làm cho nó hoạt động. Cảm ơn. – DeBraid

+0

Rất hữu ích và thanh lịch, cảm ơn bạn. –

Các vấn đề liên quan