Chartist.js 包含数据的数组

Chartist.js Array with data

我正在使用 Chartist.js 创建图表。我正在使用 Google 嵌入 API 获取 json 数据。我对此有疑问。该数组适用于我提供的值。但它不适用于来自 json.

的数据

我的代码:

var TotalBrowser = [];
var BrowserSeries = [];

var oxyn = {
    queryAnalytics: function() {
        var id = '164690638';
        var expressions = [{
            expression: 'ga:hits'
        }];
        var dimension = [{
            name: 'ga:browser'
        }];

        oxyn.getReportQuery(id, '7daysago', 'today', expressions, dimension).then(function(response) {
            var formattedJson = JSON.stringify(response.result, null, 2);
            var data = JSON.parse(formattedJson);
            var i = 0;
            BrowserTotal = data.reports[0].data.totals[0].values[0];
            jQuery(data.reports[0].data.rows).each(function() {
                if (i <= 3) {
                    jQuery('#Browsers').append(browsericon[i] + this.dimensions[0]);
                    var percent = (parseInt(this.metrics[0].values[0]) / parseInt(BrowserTotal)) * 100;
                    BrowserSeries.push(Math.round(percent));
                    TotalBrowser.push(Math.round(percent) + '%');
                    i++;
                }
            });
            demo.initChartist();

        });
    }
}

var demo = {
    initChartist: function() {

        var dataPreferences = {
            series: [
                [BrowserSeries.join()]
            ]
        };

        var optionsPreferences = {
            donut: true,
            donutWidth: 40,
            startAngle: 0,
            total: 100,
            showLabel: false,
            axisX: {
                showGrid: false
            }
        };

        Chartist.Pie('#chartPreferences', dataPreferences, optionsPreferences);


        Chartist.Pie('#chartPreferences', {
            labels: [TotalBrowser.join()],
            series: [BrowserSeries.join()]
        });

        console.log(BrowserSeries.join());
    }
};

这样不行。但是如果我这样写代码,它就可以了。

Chartist.Pie('#chartPreferences', {
   labels: [TotalBrowser.join()],
   series: [30, 70]
 });

这是有效的。

Chartist.Pie('#chartPreferences', {
   labels: [TotalBrowser[0], TotalBrowser[1]],
   series: [BrowserSeries[0], BrowserSeries[1]]
});

控制台输出

console.log(BrowserSeries.join());

30,70

JSON Source

这是一个非常愚蠢的问题。

是的,我终于解决了。我写给有同样问题的人。

Chartist.Pie('#chartPreferences', {
   labels: TotalBrowser,
   series: BrowserSeries
});

我们需要删除 [ ] 个字符。我们还必须将数据直接发送到数组。

还有:https://github.com/gionkunz/chartist-js/issues/738