34

ここに画像の説明を入力してください

googlechartを使用したLineGraphがあります。このグラフは、次のコードで作成されています

function drawChart() {
    var data = google.visualization.arrayToDataTable([ 

      ['Categegories', 'R1' , 'R2' , 'R3' , 'R4' , 'R5' , 'R6' ],

      ['A',          1,     4,       2,    4,       1,  null],

      ['D',          3,  null,    null,    7,    null,     1],

      ['G',          null,  null,    null,       8,    null,  null],

    ]);

    var options = {
      title: 'Graph',
      pointSize: 6,
      vAxis: {minValue:0, maxValue:10,gridlines:{count:6}},
    };

    var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
    chart.draw(data, options);
  }

驚くべきことに、データ行を削除すると['D', 3, null, null, 7, null, 1],

次のようなエラーが発生しますAll series on a given axis must be of the same data type


nullコードを1行に減らしましたが、値に問題があることがわかりました

例えば

['Category', 'R1' , 'R2' , 'R3' ],
['A',       2,  1,  1]

グラフを生成しますnullが、データのどこかに値を追加すると、(2,1,1)の代わりにはなりません。

値を処理するためのある種のオプションの設定に関する専門家のガイダンスを待っていnullます...null値が機能する場合と機能しない場合があるのは、非常に奇妙なことです。

4

5 に答える 5

59

最後に、私は自分の問題の解決策を手に入れました。これが私のような他の多くの人に役立つことを願っています。問題は基本的にarrayToDataTableメソッドの制限です。データの行は、すべての列で正しいタイプである必要があります。行にnull値があるため、APIは、その列のデータ型がnullであると想定しているか、有効なデータ型を取得できないというエラーをスローしています。これを修正するには、標準のDataTableコンストラクターに切り替える必要があります

var data = new google.visualization.DataTable();
data.addColumn('string', 'Year');
data.addColumn('number', 'Health (P)');
data.addColumn('number', 'Health (A)');
data.addColumn('number', 'Gender (P)');
data.addColumn('number', 'Gender (A)');
data.addColumn('number', 'Education (P)');
data.addColumn('number', 'Education (A)');
data.addColumn('number', 'Agriculture (P)');
data.addColumn('number', 'Agriculture (A)');
data.addColumn('number', 'Social protection (P)');
data.addColumn('number', 'Social protection (A)');
data.addColumn('number', 'Environment (P)');
data.addColumn('number', 'Environment (A)');
data.addColumn('number', 'Water/sanitation (P)');
data.addColumn('number', 'Water/sanitation (A)');
data.addRows([

    ['2008',81.06,null,1.32,null,94.68,0,13.41,null,30.36,null,19.78,null,36.87,null],
    ['2009',27.13,null,22.34,null,33.6,null,79.92,null,1.34,null,89.77,0,15.68,null],
    ['2010',104.89,0,14.61,null,33.46,null,30.29,null,22.28,null,107.81,null,1.39,null],
    ['2011',55,0,110.69,null,1.3,null,106.24,0,14.45,null,27.34,null,30.71,null],
    ['2012',29.96,null,27.88,null,44.77,null,133.83,null,1.31,null,105.01,null,17.83,null],
    ['2013',0,null,0,null,0,null,0,null,0,null,0,null,0,null]
]);

次のリンクからコピー https://groups.google.com/forum/?fromgroups=#!topic/google-visualization-api/2Jafk8PyjV4

または、arrayToDataTable()を使用して、ヘッダー行でタイプを指定できます。詳細については、ドキュメントをご覧くださいhttps://developers.google.com/chart/interactive/docs/datatables_dataviews#arraytodatatable

var data = google.visualization.arrayToDataTable([
      ['Categegories', {label: 'R1', type: 'number'} , {label: 'R2', type: 'number'} , {label: 'R3', type: 'number'} , {label: 'R4', type: 'number'} , {label: 'R5', type: 'number'} , {label: 'R6', type: 'number'} ],

      ['A',          1,     4,       2,    4,       1,  null],

      ['D',          3,  null,    null,    7,    null,     1],

      ['G',          null,  null,    null,       8,    null,  null],

    ]);
于 2012-11-06T17:07:07.543 に答える
8

ヘッダー行にタイプを指定すると問題が解決すると思います。

var data = google.visualization.arrayToDataTable([
['Category', {label: 'Return', type: 'number'}, {label: 'Risk', type: `enter code here`'number'}],
[1.5,  20, 50]
]);
于 2018-02-10T14:51:41.097 に答える
4

私にとって、このエラーは、値が追加されていない追加の列があることが原因でした。

于 2015-11-11T15:12:29.837 に答える
1

このエラーは、2つの列に文字列があり、1つの列に数字がある棒グラフを作成することで発生しました。2番目の文字列列を非表示にしたまま忘れたビューを表示するつもりでした。

于 2014-01-09T00:20:04.110 に答える
0

Googleスプレッドシートからグラフを作成すると、このエラーが発生しました。空の列をすべて削除すると、この問題が修正されました。大きな問題ではありませんが、それでも迷惑です。

于 2021-06-11T23:25:05.333 に答える