2014-12-03 5 views
0

d3에서 플롯 팅을 자르기 위해 내부 치수를 만들었습니다. 다음은 코드입니다.d3 크롬에서 svg 변환에 대한 해결 방법

var svg = d3.select("body").append("svg") 
     .attr("width", width) 
     .attr("height", height); 

var nestedSVG = svg.append('svg') 
     .attr("width", innerWidth) 
     .attr("height", innerHeight) 
     .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); 

이것은 파이어 폭스에서 잘 작동합니다. 그러나 크롬은이 같은 svg 변환을 지원하지 않는다는 것을 알았습니다 (크롬에서는 작동하지 않습니다). 중첩 된 SVG를 변형 할 수있는 해결 방법이 있습니까?

+0

대신 "nestedSVG"를 div에 추가하지 않으시겠습니까? –

+0

요소의 변형은 SVG 1.1에서 명시 적으로 허용되지 않습니다. 이는 대부분의 브라우저에서 자동 변환이 무시된다는 것을 의미합니다. SVG2는이 문제를 해결하려고 노력할 것이지만 정확히 어떻게 작동해야하는지 정확히 정의하지는 못했습니다. 이 문제를 해결하려면 요소를 추가하여 변형을 가져오고 어디에서나 사용할 수 있습니다. –

답변

0

x and y attributes on your nested SVG을 설정하여 좌표 변환을 만들 수 있습니다.

var svg = d3.select("body").append("svg") 
     .attr("width", width) 
     .attr("height", height); 

var nestedSVG = svg.append('svg') 
     .attr("width", innerWidth) 
     .attr("height", innerHeight) 
     .attr("x", margin.left) 
     .attr("y", margin.top); 

은 더 복잡한 변환의 경우, 부모 또는 자녀 <g> 요소를 사용할 것이며, as you mentioned in comments to your previous question을 그 변환.

관련 문제