2013-12-09 3 views
0

인스턴스 수를 수동으로 정의한 루프에 대해 d3을 사용하여 일련의 라인을 생성합니다. 일부 행이 n 인 외부 데이터가 있다고 가정합니다. 그리고 나는 그 많은 행을위한 선을 만들고 싶습니다.d3 - 최대 데이터 수를 기반으로 라인을 만듭니다.

var height = 200; 
var width = 1000; 
var count = 50, padding = 11; 
var svgContianer = d3.select(".spectrum") 
         .append("svg") 
         .attr("class", "g") 
         .attr("width", width) 
         .attr("height", height) 

for(var i = 0; i < count; ++i) { 
    var line = svgContianer.append("line") 
          .attr("x1", padding*i) 
          .attr("x2", padding*i) 
          .attr("y1", 90) 
          .attr("y2", 25) 
          .attr("stroke", "#555") 
          .attr("stroke-width", 10) 

} 

을하지만 난이 같이 사용할 때

선 루프 사용하여 만든. 작동하지 않습니다.

var height = 200; 
var width = 1000; 
var count = 50, padding = 11; 
var svgContianer = d3.select(".spectrum") 
         .append("svg") 
         .attr("class", "g") 
         .attr("width", width) 
         .attr("height", height) 


d3.csv("data2.csv", function(data, error) { 

    var line = svgContianer.selectAll("line") 
          .data(data) 
          .enter() 
          .append("line") 
          .attr("x1", padding*i) 
          .attr("x2", padding*i) 
          .attr("y1", 90) 
          .attr("y2", 25) 
          .attr("stroke", "#555") 
          .attr("stroke-width", 10) 
          .on("mouseover", movein) 
          .on("mouseout", moveout) 

}) 

일부는 외부 데이터의 행 수에 대한 행을 만드는 데 도움이됩니다.

FIDDLE

자료 :

 
time,count 
00:12,1 
00:45,1 
01:14,1 
01:30,1 
01:57,1 
02:21,1 
02:44,1 
02:50,1 
03:13,1 
03:41,1 
03:59,1 
04:10,1 
04:23,1 
04:45,1 
04:59,1 
05:01,1 
05:17,1 
05:48,1 
06:00,1 
06:11,1 
06:23,1 
06:31,1 
06:47,1 
07:12,1 
07:29,1 
07:41,1 
07:58,1 
+0

파일로드 여부를 확인할 수 있습니까? console.log (data)를 사용하여 데이터를 출력하려고하므로 데이터가 제대로 전달되는지 확인하십시오. 또 다른 것은 padding * i를 바꾸는 것입니다. (d, i) {return padding * i;} – Yogesh

+0

이 오류가 있습니다. 'Uncaught TypeError : null의'length '속성을 읽을 수 없습니다.' –

+0

이것은 파일을 읽을 수 없음을 의미합니다. . 따라서 데이터는 null입니다. – Yogesh

답변

0

문제가 i 당신의 코드 조각을 정의되지 않는 것입니다 것 같습니다. 무엇을 할 수있는 것은 :

.attr("x1", function(d,i){return padding*i}) 

으로 : 단일 선 (선에 대응 data 배열의 요소)

  • i 인덱스 인에 부착 된 데이터를 되

    • ddata 배열에있는 요소의
  • +0

    데이터에서 '시간'을 사용하여이 행에 x 축을 추가하는 방법은 무엇입니까? 30 분 간격으로 알려 드리고 싶습니다. –

    +1

    d3 자습서를보십시오. stackoverflow.com에는이 예제가 수없이 많습니다. – Yogesh

    관련 문제