2013-04-17 4 views
0

이 전체 코드는 당신이 필요로된다새로 추가 된 요소에 텍스트를 추가

https://raw.github.com/alignedleft/d3-book/master/chapter_09/25_adding_values.html

그것은 로컬 D3를 참조하지만, 더 빠르고 것은 그냥이 대신 같은 자사의 웹 사이트에서에 refrence 수 있습니다 작동된다

enter image description here

:
<script src="http://d3js.org/d3.v3.min.js"></script> 

그것은이 같은 일부 차트를 만들 것

새로 추가 된 차트에는 텍스트 레이블이없는 차트가 있습니다. 라벨을 추가하는 코드의

일부는 코드의 맨 끝 부분이며, 이것이다 : 나는 내가 가진 또한 새로운 막대를 업데이트 할 수 있습니다 코드를 수정하기 위해 노력하고 연습으로

  svg.selectAll("text") 
       .data(dataset) 
       .transition() 
       .duration(500) 
       .text(function(d) { 
        return d; 
       }) 
       .attr("x", function(d, i) { 
        return xScale(i) + xScale.rangeBand()/2; 
       }) 
       .attr("y", function(d) { 
        return h - yScale(d) + 14; 
       }); 

을 자신의 텍스트 데이터를 가져올 수는 있지만 여전히 파악할 수는 없습니다. 어떻게 그럴 수 있니?

답변

2

.enter() 선택 사항을 처리해야합니다. 코드는 다음과 같습니다.

svg.selectAll("text") 
      .data(dataset) 
      .enter() 
      .append("text") 
      .text(function(d) { 
       return d; 
      }) 
      .attr("x", function(d, i) { 
       return xScale(i) + xScale.rangeBand()/2; 
      }) 
      .attr("y", function(d) { 
       return h - yScale(d) + 14; 
      }); 

자세한 내용은 this tutorial을 참조하십시오.

+0

enter()를 사용하여 주셔서 감사합니다 ... 우리는 가까이 가고 있습니다 :)하지만이 방법을 시도하면 모든 텍스트가 순서가 바뀌고 있습니다 ... 그래서 비늘이나 무언가와 관련이 있습니다. ... –

+1

이것은 데이터를'.data()'에 넘겨주는 순서 때문에 발생했을 가능성이 큽니다 - 요소를 일치시키는 방법을 알려주는 함수를 지정하지 않으면 순서가 실제로 중요합니다. 이 모든 내용은 제가 링크 한 튜토리얼에서 설명됩니다. –

관련 문제