2013-10-09 2 views
1

d3을 사용하여 그래프를 작성하는 중 그래프가 축에 더 작은 숫자를 갖기도하고 그래프에 축에 더 큰 숫자가 표시되는 경우가 있습니다. 이로 인해 때때로 다음과 같은 문제가 발생합니다.d3의 응답 축 값

enter image description here

사항은 왼쪽과 오른쪽에있는 SVG 요소를 수행하는 방법 및 전체 전설이 표시 얻을 나던. 화면 양쪽의 공간을 줄이기 때문에 어느 쪽에서도 여백을 늘리지 않고 놀고 싶습니다.

축이 데이터 입력과 관련하여 반응하는 방식이 있습니까? 즉; 숫자가 수천에있을 때 숫자에 'k'또는 'm'이 추가됩니다 (100000 -> 100K, 12000000 -> 12M).

+0

같은 것을 지정할 필요는 IF 함수 라운드 (x)는 {와 같은 문장 일 경우 (X <1000000) {d3.format (.0r)} 다른 {d3.format (.2s)} ;. 참고이 테스트하지 않았습니다. btw에는 형식 함수에 s 형식이 있습니다. 원하는 형식 (예 : [https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format])과 같이 단위 접미어가 붙습니다. – user1614080

답변

2

기능이 axis.tickFormat()이면 정확하게 수행 할 수 있습니다. 형식은 d3.format()에 대한 설명서에 설명되어 있습니다. 귀하의 경우에는, 당신은 함께 라운딩 함수를 작성하지 왜

axis.tickFormat(d3.format("s"));