2012-04-18 6 views
12

나는 차트를 만들고 있는데 y 축 눈금 레이블을 십진수 대신 백분율로 표시하고 싶습니다. 어떻게해야합니까?Y 축을 백분율로 표시 하시겠습니까?

내 현재 코드는 내가 D3는 format specifier을 가지고 것으로 나타났습니다 뭔가

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") 

처럼 보이지만 나는 tickFormat와 함께 이들을 사용하는 방법을 모르겠어요.

답변

36

수동으로 축을 제작 한 것처럼 보입니다. 대신 렌더링을 수행하는 d3.svg.axis 구성 요소를 사용하는 것이 좋습니다. 예를 들면 다음과 같습니다 비율은 다음 d3.format가의 퍼센트 지시어 사용으로

포맷 할 경우 틱 :

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

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

대신 페이지를 사용할 수 있습니다 지시문을 유효 숫자의 백분율로 올림합니다.

질문에 직접 대답하려면 대신 scale3의 tickFormat 인 d3.format 을 사용하십시오. Scales는 편의상 기본 tickFormat을 제공하지만 다른 동작을 원할 경우 축척의 기본 d3.format 대신 사용자 정의 d3.format을 사용합니다.

관련 문제