2012-05-23 2 views
1

SQL을 통해 asp.net 레이블로 데이터를 쉼표로 구분하여 반환합니다. x, y 및 c 데이터를 가져옵니다. 세 번째 변수를 사용하여 데이터가 속한 설정을 알려줍니다 (여러 세트가 있음). 이제이 세트에는 다른 도메인이 있으므로 장난감 예제를 사용합시다.D3에서 도메인 변경

X = [1,0.5,0.75,0.8; 10,5,7.5,8; 100, 50, 75, 80]

Y = [2,3,4,5; 20,30,40,50; 200, 300, 400, 500]

C = [1,1,1,1; 2,2,2,2; 3,3,3,3]

나는 사용자가 드롭 다운 메뉴에서 세트를 선택 그래서 때 설정이, 내가 보여주고 적절한 규모

.attr("r", function (d) { if(d.c == $('#pick').val()) return 1; else return 0}) 

을 실행하여 그러나 물론 해당 설정을 보여 이들은 아주 다르다! 내가 도메인을 결정하는 방법은 항상 (100 일 것입니다 X에 대한) 최대 값

var x = d3.scale.linear().domain([0, d3.max(datafiltered, function (d) { return parseInt(d.x) }) * 1.1]).range([0 + margin, w - margin]), 

onclick 이벤트에이를 재설정 할 수있는 방법이 있나요을 반환?

답변

1

onclick 처리기에서 축척 (귀하의 경우 x)을 새 것으로 대체하십시오. 기본적으로 d3.scale을 인스턴스화하는 선을 반복 한 다음 시각화를 다시 그립니다. 눈금을 덮어 쓰면 실제 시각화 코드를 변경할 필요가 없습니다.

+0

어떻게 시각화를 다시 그립니다. 서클을 추가해야한다고 생각했는데 정확하지 않은 것 같습니다. 드롭 다운을 선택한 후 실행중인 테스트 코드는 다음과 같습니다. $ ('# pickSet') on ("change", function() { vis.selectAll ("circle") .data ([5]) .enter(). "기입"() ( .attr ("CX ', 3.33) .attr ("CY "1.99) .attr ("R ", 25) .attr을"원 "을 추가 , "steelblue"), }); – ScottieB

+0

'.enter(). append (...)'를 제거하십시오. 하드 코딩 된'cx'와'cy'를 앞에서 생성 한 스케일에 대한 호출로 대체해야합니다. –

+0

아름다운, 고마워! 코딩 된 예제를 찾고 있다면 http://jsfiddle.net/scottieb/cu523/ – ScottieB

관련 문제