2013-11-14 1 views
3

숫자 앞에 음수 기호가 나타나지 않도록하는 눈금이 있습니다 - d3 포맷터에서 어떻게 할 수 있습니까? 다음과 같이 규모가 내장되어 있습니다 : "-"음수 기호 d3 축 레이블을 표시하지 않음

var formater = d3.format("0"); 

self.x = d3.scale.linear().domain([self.xmin, self.xmax]).range([0, self.settings.width]) 

    self.axis = d3.svg.axis() 
     .scale(self.x) 
     .orient("bottom") 
     .tickFormat(formater); 

    self.axisLabels = self.svg.append("g") 
        .attr("class", "axis") 
        .attr("id", "axis") 
        .call(self.axis) 

내가 "+"기호를 추가하지만 제거하지 할 수있는 옵션도 참조 https://github.com/mbostock/d3/wiki/Formatting#wiki-d3_format

서명을, 그것은 하나 개의 레이블을 제거 할 수 있습니까? 저울에 -5에서 5까지 라벨을 붙이고 있는데, 음수 기호가 나타나기를 원하지 않으며, 0으로 레이블을 지정하고 싶지 않습니다. 고마워요. 당신은 이미 포맷을 사용하고 제거 D3에 의존 할 필요가 없습니다

+0

당신은 모든 숫자를 긍정적으로 변환 할 수? 그리고'.tickValues ​​()'를 사용하여 명시 적으로 값을 지정할 수 있습니다 (즉, 0을 표시하지 않음). –

+0

규모가 -5에서 5로 바뀝니다 (나는 막대가 양방향으로 움직입니다). "-2"위치에 "2"값을 표시 할 수 있습니까? – mike

+0

질문을 이해합니다. 긍정적 인 가치를 원한다면 왜 처음부터 양수 값을 사용하지 않는지 묻는 것입니다. –

답변

3

'-'기호를 사용자가 직접 수행 할 수 있습니다

var formatter = d3.format("0"); 

// ... 

self.axis = d3.svg.axis() 
    .scale(self.x) 
    .orient("bottom") 
    .tickFormat(function (d) { 
     if (d === 0) return ''; // No label for '0' 
     else if (d < 0) d = -d; // No nagative labels 
     return formatter(d); 
    }); 
+0

굉장히 감사합니다! – mike