2014-11-11 3 views
0

도메인 [-1,0,1] 및 범위 [ "red", "yellow", "green"]가있는 D3에서 선형 눈금을 사용할 수있는 D3에서 유향 선 그래프를 작성하려고합니다. 가장자리의 색을 노드 간의 속도 표현으로 설정합니다. 나는 D3, JS, 일반 프로그래밍에 새로운 오전, 그래서 내가 뭔가를 분명 누락 확신 해요,하지만 난이 색 배열의 값을 호출 할 수있는 방법이 다음 내html 섹션에서 선언 된 변수를 사용하는 방법은 무엇입니까?

var color = d3.scale.linear() 
.domain([-1, 0, 1]) 
.range(["red", "yellow", "green"]); 

은 스타일 섹션에서 선의 실제 색상을 선언합니까? 나는 무엇을 시도했다 예, 나는 10 개 링크 유형을 선언 한 곳과 나는 그들에 색상 요소를 전달하기 위해 노력하고있어 :

path.link.onezero { 
    stroke: color(-0.5); 
} 

가 작동하지 않습니다, 그리고 빈 줄을 반환합니다. 경로. 링크 .wozero { 스트로크 : # 000; } 작동하며 검은 선을 반환합니다.

명백히이 문제를 잘못된 방법으로 공격하고 스타일 섹션 내 스타일 요소의 개별 선언에 의존하지 않고이 라인을 만들 수 있기를 원하지만 스타일이있는 하나의 스타일 요소 섹션을 만들고 내 스크립트에 의해 동적으로 결정된 속성을 가져야합니다. 어떻게해야할지 모르겠습니다.

감사합니다.

+0

여기에 CSS와 자바 스크립트가 혼합되어 있습니다. Javascript 코드에서'color()'를 호출해야합니다. 예를 들어보십시오 http://bl.ocks.org/mbostock/3884955 –

+0

코멘트 주셔서 감사합니다. 나는 개량을 할 수 있는지를 파헤쳐보고 볼 것입니다. – aschaefer

답변

0

아래와 같이 자바 스크립트 코드 내에서 color 함수를 호출해야합니다.

d3.selectAll("path.link.onezero") 
    .style("stroke",color(-0.5)); 
+0

답변 해 주셔서 감사합니다! 이 코드를 코드에 삽입했는데 어떤 이유로 그 색상 값을 가져 오기 위해 path.link.onezero 요소를 수정하지 않았습니다. .style ("stroke", color (-0.5)); 뿐만 아니라 아무 소용이 없습니다. – aschaefer

+0

선택기에 문제가 있습니다. 답변을 업데이트했습니다. 지금 시도해보십시오. – Gilsha

+0

추가 필터가 필요 없으며'd3.selectAll ("path.link.onezero")'를 수행하면됩니다. –

관련 문제