2014-11-28 5 views
0

여기 a link of my demo입니다! 명확하지 않은 경우 link of fisheye demo2을 참조하십시오.어안을 사용하는 d3 프로젝트가 있는데 왜 데이터 포인트에서 마우스를 가리켜 야합니까

fisheye.copy = function() { 
    return d3_fisheye_scale(scale.copy(), d, a); 
}; 

fisheye.nice = scale.nice; 
fisheye.ticks = scale.ticks; 
fisheye.tickFormat = scale.tickFormat; 
return d3.rebind(fisheye, scale, "domain", "range"); 

나는 어안이 부드럽게 움직이기를 원합니다. 즉 평범한 공간을 지나갈 때, 어안도 그럴 것입니다.

답변

0

부부 문제 :

1) 당신은 몇 당신의 TSV 파일의 끝 부분에 빈 줄이 당신의 음모에 가짜 데이터를 소개하고 있습니다.

2.) 서클을 g 요소로 묶었습니다. g 그룹은 "빈"컨테이너이며 마우스 이벤트를받지 못합니다. 한 가지 트릭을 사용하면 빈 공간을 rect과 같은 요소로 채울 수 있습니다.

var svg = d3.select("body").append("svg") 
    .attr("width", width + margin.left + margin.right) 
    .attr("height", height + margin.top + margin.bottom) 
    .append("g") 
    .attr("transform", "translate(" + margin.left + "," + margin.top + ")"); 

svg.append("rect") 
    .attr('fill','none') 
    .attr('pointer-events', 'all') 
    .attr("width", width + margin.left + margin.right) 
    .attr("height", height + margin.top + margin.bottom) 
    .attr("class","chartArea"); 

그런 다음 마우스 오버가된다 :

d3.select(".chartArea").on("mousemove", function() { 
    fisheye.focus(d3.mouse(this)); 
    ... 

example 업데이트되었습니다.

+0

예, 전에 주목했습니다. 그러나 나는 단순히 .append ("g")를 움직인다. 하지만 Y 축은 엉망입니다. (어쩌면 시도해 볼 수 있습니다.)하지만 왜 그랬습니까? 나는 이것에 처음이다, 이제 더 ~ –

+0

@ ZhangNan, 당신은'g'을 움직일 수 없다. x 축과 y 축으로 원들을 그룹화한다. 내 해결책을 보았 니? 그것은 당신의 문제를 해결합니다. – Mark

+0

네, 저도 보았습니다. 내 것이 정말 멋지 네요. 그러나 당신의 프로그램이 붐비는 (점) 장소에 올 때 그것이 더 느리게되는 것을 알아 차렸습니까? 오, 질문을 잊어 버린 또 다른 질문이 있습니다. 올바른 장소에서 데모를보고 싶습니다. 마우스가 가리키고있는 도시 지점의 OPP_TOT 및 OPP_LAND 수를 표시해야하지만, 그것이 정의되지 않은 이유는 무엇입니까 ???? 그건 그렇고, 회사의 학생이나 개발자입니까? –