2013-05-03 29 views
5

Tôi đã tìm kiếm trong tài liệu chính thức d3.js, cũng như, ở đây trong stackoverflow để tìm cách thêm tickValues ​​tùy chỉnh vào trục quy mô thời gian; Tuy nhiên, tôi đã không vấp ngã trên bất kỳ tài liệu nào xác nhận rằng một cái gì đó như thế là có thể.d3js đặt tickValues ​​cho trục tỷ lệ thời gian

Vì vậy, về bản chất, tôi có trục quy mô thời gian và tôi muốn hiển thị giờ cụ thể ví dụ: Tôi muốn làm một cái gì đó như thế này:

xHourAxis 
    .ticks(d3.time.hours, 2) 
    .tickFormat(d3.time.format('%I %p')) 
    .tickValues(2, 4, 6, 8, 10, 12) ; 

Vì vậy, tôi muốn hiển thị giá trị đánh dấu mỗi 2 giờ, nhưng không bao gồm lần đầu tiên (12 giờ sáng) và cuối cùng (12 giờ tối).

Có ai biết nếu có bất kỳ giải pháp nào cho điều đó không?

+1

Không chỉ định 'ticks()' nếu bạn cũng sử dụng 'tickValues ​​()'. Các giá trị đánh dấu bạn chỉ định cần phải là các giá trị thời gian, nhưng ngoài ra nó sẽ hoạt động. Làm thế nào là nó không làm việc cho bạn? –

+0

Nó chỉ không hiển thị bất kỳ ve cho giá trị tôi vượt qua; mặc dù tôi đã loại bỏ ve() – ppoliani

+2

Như tôi đã nói, bạn cần phải vượt qua các đối tượng ngày và không chỉ là số nguyên. –

Trả lời

0

Gần đó, nhưng mã của bạn có hai vấn đề: Đầu tiên giá trị đánh dấu phải được chỉ định trong một mảng và thứ hai các giá trị đó phải là đối tượng ngày Javascript. ví dụ: bạn chỉ cần cung cấp một loạt các ngày để tickValues do đó, mã của bạn sẽ trông giống như sau:

xHourAxis 
.tickFormat(d3.time.format('%I %p')) 
.tickValues([new Date(2000,10,5), new Date(2005,2,7), new Date(2007,11,11)]); 

Ngoài ra, lưu ý rằng bạn không cần phải gọi ticks() nếu bạn đang đi để sau đó xác định giá trị tùy chỉnh.

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