2013-03-01 24 views
12

Tôi đang cố gắng thực hiện biểu đồ dựa trên http://mbostock.github.com/d3/talk/20111116/bar-hierarchy.html, khác biệt duy nhất là tôi muốn sử dụng thang đo log cho trục x.Sử dụng tỷ lệ log d3 thay vì quy mô tuyến tính

Dưới đây là fiddle tôi: http://jsfiddle.net/JhDVC/5/

Như bạn thấy, trục x được định nghĩa tại dòng 4:

x = d3.scale.linear().range([0, w]), 

Nếu tôi thay đổi nó cho

x = d3.scale.log().range([0, w]), 

Sau đó, nó doesn không hoạt động (không có gì được hiển thị), ném các thông báo lỗi sau:

Error: Invalid value for <rect> attribute width="NaN" 

Thay đổi cài đặt tên miền từ

x.domain([0, root.value]).nice(); 

để

x.domain([1, root.value]).nice(); 

chỉ cho tôi theo trục z (tên) nhưng vẫn không có thanh hoặc giá trị.

Trả lời

8

Có một vài địa điểm khác mà miền cho quy mô được đặt. Bạn cần phải cập nhật những người là tốt.

Làm việc jsfiddle here.

Và đây là một số mã để nó cho phép tôi đăng bài này:

x.domain([1, root.value]).nice(); 
+2

[Đã xác minh tại đây] (http://jsfiddle.net/amullins/grQmf/1/). –

+0

#facepalm. Cảm ơn! :) – luisfarzati

1

phạm vi của bạn bao gồm zero - log (0) là không xác định.

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