1

正常にレンダリングされるネストされた PieChart があります。クリック時に選択したデータを取得するために「google.visualization.events.addListener」を追加しました。複数のチャートを含むページがあり、それらはすべて行と列の値を返します。私のグラフには 2 年間のデータが「並べて」表示されており、どのデータ セットがユーザーによってクリックされているかを区別する必要があります。どちらのデータ セットも行を返しますが、列を返すものはありません。私が使用しているコードは次のとおりです。

google.setOnLoadCallback(drawLocationChart);
function drawLocationChart() {

    var newData5 = google.visualization.arrayToDataTable(
    [["Location","Last 12mo Spend"],
    ["OMAHA, NE 68137",17916.2],
    ["SOUTHLAKE, TX 76092",12787.89],
    ["SUNNYVALE, CA 94085",7539.96],
    ["GREENVILLE, SC 29607",6627.21],
    ["TAMPA, FL 33634",3210.89]]);

    var oldData5 = google.visualization.arrayToDataTable(
    [["Location","Previous 12mo Spend"],
    ["OMAHA, NE 68137",17316.2],
    ["SOUTHLAKE, TX 76092",9787.89],
    ["SUNNYVALE, CA 94085",12539.96],
    ["GREENVILLE, SC 29607",9927.21],
    ["TAMPA, FL 33634",3821.89]]);

    var options5 = {
        colors: [
            '#9DB86D',
            '#C6A2BB',
            '#FFB03B',
            '#95AB63',
            '#737373',
            '#1aa2e5',
            '#6C4862',
            '#80551E',
            '#536820',
            '#3A3A3A'
        ],
        pieSliceText: 'none',
        responsive: true
    };

    var chartDiff5 = new google.visualization.PieChart(document.getElementById('location'));
    var diffData5 = chartDiff5.computeDiff(oldData5, newData5);
    var formatter5 = new google.visualization.NumberFormat({pattern:'$###,###'});
    formatter5.format(diffData5, 1);
    formatter5.format(diffData5, 2);

    chartDiff5.draw(diffData5, options5);

    google.visualization.events.addListener(chartDiff5, 'select', function selectHandler5() {
        var selection5 = chartDiff5.getSelection();

        for (var i5 = 0; i5 < selection5.length; i5++) {
            var item5 = selection5[i5];
            // Here diffData5.getFormattedValue(item5.column, 0) ALWAYS returns null
            var str5 = diffData5.getFormattedValue(item5.row, 0);
        }
    });
}

どんな助けでも大歓迎です。

4

1 に答える 1

1

getSelection円グラフ では常に が返さnullれますcolumn

ユーザーが選択できるパイのスライスは 1 つしかないためです。

したがって、パイスライス =row

通常、円グラフには 2 列のデータのみが提供されます。

ただし、結果のデータcomputeDiffには 3 つの列が含まれています。

列 0 = ラベル
列 1 = 表 1 の値
列 2 = 表 2 の値

そのcolumnため、円グラフには必要ありません

于 2016-02-02T19:23:54.243 に答える