2015-01-17 3 views
1

d3의 .csv 가져 오기에 문제가 있습니다. 나는 CSV 가져 오기 템플릿으로 http://www.d3noob.org/2013/03/d3js-force-directed-graph-example-basic.htmlCSV 가져 오기 정의되지 않은 데이터

http://www.d3noob.org/2014/02/how-to-import-data-from-csv-file-with.html

다음되었다. 문제점 : 내 csv 열에 액세스 할 수 없습니다. 열을 액세스하려고하면 정의되지 않습니다. 특히, 나는이 코드를 내 코드를 빌드하는 예제로 사용하려고 시도했다.

d3.csv("data/force.csv", function(error, links) { 

var nodes = {}; 

// Compute the distinct nodes from the links. 
    links.forEach(function(link) { 
     link.source = nodes[link.source] || 
     (nodes[link.source] = {name: link.source}); 
     link.target = nodes[link.target] || 
     (nodes[link.target] = {name: link.target}); 
     link.value = +link.value; 
}); 

내 코드는 비슷합니다

d3.csv("../assets/datastore/transitions.csv", function(error, data){ 
if(error) return console.warn(error); 

var nodes = {}; 
data.forEach(function(d){console.log("This is the source " + d.source)}); 
//Compute distinct nodes from links 
data.forEach(function(link){ 
    console.log("This is the source" + data.source); 
    links.source = nodes[links.source] || (nodes[links.source] = {name: links.source}); 
    links.target = nodes[links.target] || (nodes[links.target] = {name: links.target}) 
    links.value = + links.value; 
}); 

나는 심지어 내 코드를 단순화하고, 데이텀의 단지 가장 기본적인 요소에 액세스하려고했습니다.

마지막으로 파이어 버그를 사용할 때 DOM 아래 노드로 81 개 요소가 등록되어있는 것처럼 내 데이터가 읽혀진 것처럼 보입니다.

잠재적 인 해결책을 제시 할 수 있다면 좋을 것입니다.

+0

CSV 파일의 샘플을 제공해주십시오. – Mark

+0

열 이름/값 사이에 CSV에 공백이 있으면 베팅하십시오. –

+0

정말로 틀린 것입니다. 내 컬럼 이름에 공백이 있었다. 알아내는 동안 나를 데려 갔던 매우 어리석은 실수! CSV 파일을 바꿔 치기를 끝내고 CSV 파일에 불량 헤더가 있다는 것을 알았습니다! 당신이 대답으로 이것을 쓰면 나는 그것을 당신에게 줄 것이다! – and0rsk

답변

3

csv가 쉼표 + 공백이 아닌 쉼표로 값을 구분하도록 형식이 구성되어 있는지 확인하십시오. 언어 문장에서 사용되는 띄어쓰기 구분 기준을 데이터 형식에 부과하는 것이 일반적인 실수입니다. 구문 기준이기도합니다.

0

다음 코드에서 linkslink이어야합니다.

links.source = nodes[links.source] || (nodes[links.source] = {name: links.source}); 
links.target = nodes[links.target] || (nodes[links.target] = {name: links.target}) 
links.value = + links.value; 

먼저 확인하고 어떻게 진행되는지 확인하십시오.

당신이 좋은 문제 해결을하고있는 것처럼 보입니다.

+0

불행히도, 이것은 해결책이 아닙니다. 추가 출력이 표시됩니다. 데이터 길이는 81 입니다. network.js (행 34) 데이터 0은 : 정의되지 않음 network.js (행 36) 데이터 1은 : 정의되지 않았으며 links.source입니다. 소스 : 정의되지 않음 네트워크 .js (라인 45) 이것은 소스가 정의 된 – and0rsk

+0

일 수 있습니다. 내 데이터 형식에 문제가있을 수 있습니까? 내 CSV 파일은 다음과 같습니다 : ID, 소스, 대상, 값 0, Node1, Node4,0 1, Node1, Node2,1231 – and0rsk

+0

잘못된 형식의 주석은 사과드립니다. 스택 오버플로. – and0rsk

관련 문제