2013-03-18 4 views
1

Google 시각화 API를 사용하면 DataView가 비어 있는지 쉽게 볼 수 있습니까? I가 사용 dataView.getValue 아마도 볼 수DataView가 비어 있는지 확인하는 쉬운 방법은 무엇입니까?

https://developers.google.com/chart/interactive/docs/reference#DataView

(0, 1) 등을위한 널 확인뿐만 아니라 컬럼 헤딩을 포함한다.

데이터 뷰에는 여러 가지 형식이있을 수 있지만 데이터 뷰가 비어 있는지 확인하는 일반적인 방법이 있습니까? 저는 파이 차트에 대해 dataview를 사용하고 있습니다. 만약 내가 기억

답변

1

이 쉽게 데이터 소스에서 반환 된 데이터 테이블은이 방법

var predata = response.getDataTable(); 
var vals = new Array(); 
var rownum = predata.getNumberOfRows(); 
// Make sure our data isn't empty. 
if (null==predata) // yoda was here 
return; 

을 반환 할 수 있습니다. 쿼리 실행이 실패하고 데이터가 반환되지 않은 경우 null을 반환합니다.

+0

감사합니다 Najzero, 내 데이터 테이블에 여전히 데이터가 포함되어 있기 때문에 수도 있지만 null입니다. 내 데이터가 이상하게 만들어 질 수도 있습니다. 레코드 세트를 사용하여 데이터 서버 측을 생성하므로 행에 데이터가 없으면 null이 삽입됩니다. 아마도 제 경우는 최우선 사례이므로 API를 사용하는 것이 어려운 이유는 무엇입니까? –

1

설명서를 읽으면서, dataView.getNumberOfRows()이 (가) 찾고있는 것 같습니다. 그러나 호출하기 전에 null 인 필터링 된 행을 가져온 다음 숨길 필요가 있습니다. 여기에 Google 코드 운동장을 사용하는 an example이 있습니다. 여기서 null에 대해 하나의 열을 검사하고 null 인 경우 행을 숨 깁니다. 아래 무엇으로 그 예를 들어 Google 코드의 기본 자바 스크립트를 교체 :

은 아마도 내가 클라이언트 측 전에 서버 측에서 0으로 null을 교체해야합니다 ... 그것은 아주 잘하지 않는 것

function drawVisualization() { 
    var dataTable = google.visualization.arrayToDataTable([ 
    ['Name', 'Age', 'Instrument', 'Color'], 
    [null, null,  null, null], 
    ['Paul', 52,  'Sitar',  'Red'], 
    ['George', 16,  'Guitar', 'Green'], 
    ['Ringo', 72,  'Drums',  'White'] 
    ]); 

    var table = new google.visualization.Table(document.getElementById('table')); 
    table.draw(dataTable, null); 

    var dataView = new google.visualization.DataView(dataTable); 

    // Get rows where the 2nd column contains null 
    var filteredRows = dataView.getFilteredRows([{column: 1, value:null}]); 
    console.log(filteredRows); 

    dataView.setColumns([0, 1]); 

    // Hide the filtered rows returned 
    dataView.hideRows(filteredRows); 

    // Check the number of rows that now exist 
    console.log(dataView.getNumberOfRows()); 

    var chart = new google.visualization.ColumnChart(document.getElementById('chart')); 
    chart.draw(dataView, {width: 400, height: 200}); 
} 
+0

감사합니다 Jacob, 행운이 비어 있어도 여전히 행 수가 반환되므로 아무 소용이 없다고 시도했습니다. 그것은 단지 내가 datatable json 서버 측을 구성하는 방법 일 수 있습니다. –

+0

@Alex Key 나는 당신을 위해 일할 수있는 예제로 나의 대답을 업데이트했습니다. 첫 번째 getFilteredRows null을 확인하고 null 인 행을 숨길 필요가 있다고 생각합니다. –

+0

재미있는 접근 방식 Jacob 감사합니다. –

0

도 나는에 의지 한

데이터 .... 본다 :

if (dataView.getValue(0, 1) === null || dataView.getValue(1, 1) === null || dataView.getValue(2, 1)) === null) 

내 DataView를의 strucuture은 여기서

 
Column Title 1 | Data 
Column Title 2 | Data 
Column Title 3 | Data 
+1

'null '은 일반적으로'데이터 없음 '을 의미하며 0 (영)은 유효한 숫자 값 (대부분의 경우 의미가 있음)이기 때문에 일반적인 시나리오에서는'null '을 0으로 대체하는 것이 허용되지 않는 옵션입니다. – AntonK

1

getDistinctValues 당신을 도울 수 있습니다. 꺾은 선형 차트는 Y 축을 따라 시각화 된 열에 적용 할 때 적합합니다.

+0

감사합니다. 귀하의 답변을 +1했으나 내 질문이 2013 년의 전 생애임을 인정해야합니다. 따라서 시험을 치를 수 없습니다. 그러나 당신의 도움에 감사드립니다. 다른 사람들에게 유익한 것으로 입증되면 사회자가 답을 표시하게 할 것입니다. –

관련 문제