d3.js 및 nvd3.js 축 및 레이블 정밀 형식 지정
문제
이 예에 표시된 누적 영역형 차트 사용http://nvd3.com/ghpages/stackedArea.html
y축 눈금 레이블과 도구 설명 레이블을 부동 소수점 대신 정수로 포맷하려고 합니다.다음 코드를 변경해 보았습니다.
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.2f'));
에게
chart.yAxis
.axisLabel('Users')
.tickFormat(d3.format(',.0d'));
정밀도는 변경되지 않습니다(여전히 100분의 1자리까지 값을 표시함).나는 Github Wiki를 따라갔지만 아무 소용이 없었습니다. https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format
어떤 제안이나 힌트라도 주시면 감사하겠습니다.
해결책
처럼 보인다 이것은 nvd3에서 지원되지 않습니다 지금은.위반을 참조하십시오 선.
또한 형식 사양이 올바르지 않습니다.문서에서 언급했듯이, "d"
정수가 아닌 값을 무시합니다.그래서 당신은 아마 원할 것입니다 ",.0f"
대신에 이는 다음을 의미합니다.
,
:수천 단위를 구분하려면 쉼표를 사용하세요..0
: 정도 0(정확한 의미는 무엇에 따라 다름) 유형 사용 중입니다.)f
:그만큼 유형;이 경우, Number.toFixed.이는 고정된 자릿수를 의미합니다( 정도)는 소수점 이하로 표시되며, 필요시 반올림 처리됩니다.
다른 팁
이 하나는 레이블 텍스트를 float에서 정수로 포맷 할 수 있습니다.
원형 차트 :
chart.pie.valueFormat(d3.format(',.0d'));
라인 차트 :
chart.yAxisTickFormat(d3.format(',.0d'));
. .tickFormat
메소드의 .yAxis
메소드가 올바르게 업데이트되지 않습니다.이것은 사용 된 작업입니다 :
chart.yAxisTickFormat(d3.format(',.0d'));
. 나는 이렇게 시도했다
.axisLabel('%').tickFormat(function(d) { return parseFloat(d).toFixed(1) + "%"; });
.
그것의 그것의 저것은 소수점과 백분율로 결과를 얻고 있습니다.
제휴하지 않습니다 StackOverflow