Google 图表显示 "No Data" 使用 array.push

Google Charts says "No Data" using array.push

尝试将 google-饼图小部件嵌入到自定义小部件中,我显然没有正确格式化数据。

HTML参考

<widget-piechart-daily 
    dataid="ConsentDecisionsToday" 
    charttitle="Consent Decisions Today">
</widget-piechart-daily>

小工具 HTML

<template>
    <google-chart id$="piechart{{dataid}}"
                  type='pie'
                  options$='{"title": "{{charttitle}}"}'
                  cols='[{"label":"Decision", "type":"string"}, {"label":"Count", "type":"number"}]'
                  rows$='{{values}}'>
    </google-chart>
</template>

聚合物()参数

    ...
    values: {
        type: Array,
        value: function() {return []}
    },
    charttitle: {
        type: String,
        value: ""
    },
    ...

小工具 Javascript

    registerCallback(this.dataid, function (data) {
        var y = data.data[0];
        self.values = [];
        //var z = y[Object.keys(y)[0]];
        for (var key in y) {
            if (y.hasOwnProperty(key)) {
                var z = y[key];
                i = z;
                if (key != 'Today'){
                    var i = parseFloat(Math.round(z * 100) / 100).toFixed(self.decimals);
                    self.values.push([key,i])
                }
            }
        }
        self.isloading = false;
        console.log(self.values);
    });

回调是针对 pubnub 流。当我登录 self.values 时,它看起来像这样:

但图表是这样呈现的:

如何修改 self.values.push([key,i]) 来解决这个问题?

您应该使用 Polymer 的 array mutation methods 修改数组并将更改通知绑定系统:

for (var key in y) {
  ...
  self.push('values', [key, i]);
}

根据 data format for a Pie Chart

第 0 列 应该是 'string'
第 1 列 应该是 'number'

但是,'string' 用于 列 1
toFixed 的结果)

if (key != 'Today'){
    var i = parseFloat(Math.round(z * 100) / 100).toFixed(self.decimals);
    self.values.push([key,i])
}

尝试改用数字

if (key != 'Today'){
    var i = parseFloat(Math.round(z * 100) / 100);
    self.values.push([key,i])
}