javascript - Google Charts 嵌套饼图将列返回为 null

标签 javascript google-visualization google-pie-chart

我有一个渲染良好的嵌套饼图。我添加了“google.visualization.events.addListener”来获取点击时选定的数据。我有一个包含多个图表的页面,它们都返回行和列的值。我的图表有两年“并排”的数据,我需要区分用户单击的是哪组数据。两组数据均返回行,但均不返回列。这是我正在使用的代码:

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);
        }
    });
}

任何帮助将不胜感激。

最佳答案

getSelection对于饼图上的,将始终返回null

因为用户只能选择一个饼图。

因此饼图 =

通常,只向饼图提供两列数据。

但是,computeDiff 生成的数据包含三列。

Column 0 = Label
Column 1 = Value from Table 1
Column 2 = Value from Table 2

因此,饼图不需要 column

关于javascript - Google Charts 嵌套饼图将列返回为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35158909/

相关文章:

javascript - lodash _.uniqWith 性能下降

javascript - 从客户端 Web 应用程序中提取 excel 内容

javascript - 不支持语法

javascript - 谷歌可视化设置栏停靠

javascript - 在点击文本或图片时显示谷歌饼图?

javascript - lambda : whereAny?

javascript - 谷歌条形图不会是透明背景

javascript - 如何使谷歌折线图上的线可点击

javascript - 将 JavaScript 链接添加到 Google 可视化饼图的饼图切片

javascript - 在 Google 条形图中自定义 hAxis 刻度颜色