2012-04-18 41 views
12

Tôi đang tạo biểu đồ và tôi muốn các nhãn đánh dấu trên trục y của tôi hiển thị dưới dạng phần trăm (thay vì số thập phân). Tôi có thể làm cái này như thế nào?Hiển thị trục y làm phần trăm?

mã hiện tại của tôi trông giống như

yAxis 
    .append("text") 
    .attr("class", "ticklabel") 
    .attr("x", 0) 
    .attr("y", y) 
    .attr("dy", ".5em") 
    .attr("text-anchor", "middle") 
    .text(y.tickFormat(5)) 
    .attr("font-size", "10px") 

tôi nhận thấy rằng d3 có format specifier, nhưng tôi không chắc chắn làm thế nào để sử dụng các kết hợp với tickFormat.

Trả lời

36

Dường như bạn đang tạo ra trục bằng tay. Thay vào đó, tôi khuyên bạn nên sử dụng thành phần d3.svg.axis để hiển thị cho bạn. Ví dụ:

Nếu bạn muốn định dạng bọ ve là tỷ lệ phần trăm, sau đó sử dụng d3.format 's % chỉ:

var formatPercent = d3.format(".0%"); 

var yAxis = d3.svg.axis() 
    .scale(y) 
    .orient("left") 
    .tickFormat(formatPercent); 

Bạn có thể thay vì sử dụng p chỉ thị nếu bạn muốn làm tròn tỷ lệ phần trăm thành các chữ số có nghĩa.

Để trả lời câu hỏi của bạn trực tiếp hơn, bạn sử dụng d3.format thay vì tickFormat của quy mô. Cân cung cấp một tickFormat mặc định cho thuận tiện, nhưng nếu bạn muốn hành vi khác nhau, sau đó bạn sử dụng một d3.format tùy chỉnh hơn là mặc định của quy mô.

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