2017-11-14 42 views
0

C3에서 그래프를 그리기 위해 각 열이 배열의 배열 인 열 데이터를이 C3 docs example.과 같이 차트에 다른 선으로 표시 할 수 있습니다. 그러나 열 데이터가 희박한 방법이 있습니까? 시도 할 때 오류가 발생합니다. 비록 내가 모르는 해결 방법이 있는지 확실하지 않지만.C3 차트로 스파 스 배열을 사용하는 방법은 무엇입니까?

그렇지 않은 경우 스파 스 배열과 밀도가 높은 배열간에 변환 할 수있는 방법이 있습니까?

var columnData = [] 

var entry1 = ['data1', 30, 200, 100, 400, 150, 250]; 
var entry2 = ['data2', 50, 20, 10, 40, 15, 25]; 

columnData[0] = entry1; 
columnData[3] = entry2; 
console.log('columnData - sparse format', JSON.stringify(columnData)); 

function checkIfUndefined(x) { 
    return (x !== undefined); 
} 

function sparseToDense(data) { 
    return data.filter(checkIfUndefined); 
} 

/* If you comment out this sparseToDense conversion, it breaks 
* with the following error: 
* c3.js:5403 Uncaught TypeError: Cannot read property '0' of undefined 
*/ 
columnData = sparseToDense(columnData); 
console.log('columnData - dense format', JSON.stringify(columnData)); 

var chart = c3.generate({ 
    data: { 
     columns: columnData, 
     axes: { 
      data1: 'y', 
      data2: 'y2' 
     } 
    }, 
    axis: { 
     y2: { 
      show: true 
     } 
    } 
}); 

답변

1

https://jsfiddle.net/dbkidd/majx8byn/

당신은 항목 값으로 빈 배열을 사용할 수 있습니다.

[["data1",30,200,100,400,150,250],[],[],["data2",50,20,10,40,15,25]] 

을 그리고 길이없이 배열을 건너 뛰도록 필터링 기능을 수정 :이 작품을 좋아

function checkIfNull(x) { 
    return (x.length); 
} 

updated fiddle

+0

니스하세요! 고마워요. – Dallas