2017-03-05 1 views
2

중국의 색으로 구분 된지도가 있는데지도 오른쪽에 색 눈금과 축을 추가 할 때까지 제대로 작동했습니다. 당신은 여기에서 볼 수 있습니다이상한 축 동작

https://bl.ocks.org/diggetybo/4c42aafc20c21e416585c9e37079eda2

문제는, 지방 내가 축을 추가 한 후 실종. 누락 됨으로서 더 이상 보이지 않습니다. 나는 그것이 실제로 아직도 거기에 있는지는 알 수 없지만 아무 것도 채우지 못한다. 또는 웬일인지 경로가 모두 그려지지 않았다. 그것은 중국 북서쪽에있는 매우 큰 지방이기도합니다. 지리학의 핵심 분야는 지방의 이름이 신강이다.

처음에 나는 그것이 내 부분에서 사용자 오류라고 확신했다. 그러나 많은 고생 끝에 나는 천천히 그것이 일종의 버그 일 수 있다고 생각하기 시작했다. 라인 69, 이하 스 니펫에서 .call(axis); 행 : 나는 어떤 라인으로 범위를 좁힐 관리 않았다 말 그대로 다른 모든 라인을 주석, 만 .call(axis); 라인은 지방이 사라지게

var axisNodes = svg.append('g') 
    .attr('transform', 'translate(' + (margins.left+865) + ',' + (margins.top) + ')') 
    .call(axis); 
styleAxisNodes(axisNodes); 

. 직접 시도해보십시오. 69 행을 주석 처리하면 지방이 다시 나타납니다.

내 질문 : 축이 코드의 완전히 다른 섹션 인 json 구문 분석 된 맵 경로의 채우기와 관련이 있습니까? 왜 이 해당 주에 영향을 줍니까? 그리고 이것을 피하려면 어떻게해야합니까?

답변

3

감사 당신이 당신의 d3.json 함수 내에서이 작업을 수행 할 때 :

svg.selectAll("path") 

당신은 사실 축 '경로 이미 존재하는 경로를 선택하고 데이터를 바인딩한다.

그 때문에 "입력"선택 항목의 요소 수가 적습니다.

솔루션 :

여기
svg.selectAll("foo") 

가 업데이트 된 bl.ocks입니다 : https://bl.ocks.org/anonymous/387781c5bccb0339141b519c098f5605

가 PS : 또 다른 솔루션은 축 를 호출 후지도를 그림 존재하지 않는 무언가를 선택 .

PPS : "왜 그 지역에만 영향을 미쳤습니까?" 그 지방은 데이터의 첫 번째 것입니다.