Chartist.js包含数据的数组

时间:2017-11-18 20:53:31

标签: javascript chartist.js

我正在使用Chartist.js创建一个图表。我正在使用Google嵌入式API获取json数据。我有这个问题。该数组使用我给出的值。但它不适用于json的数据。

我的代码:

    public void DoClick(string selectType, string selector)
    {
        switch (selectType)
        {
            case "ClassName":
                driver.FindElement(By.ClassName(selector)).Click();
                break;
            case "CssSelector":
                driver.FindElement(By.CssSelector(selector)).Click();
                break;
            case "Id":
                driver.FindElement(By.Id(selector)).Click();
                break;
        }
    }

它不起作用。但如果我像这样编写代码,它就可以工作。

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

控制台输出

  

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

     

30,70

JSON Source

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

1 个答案:

答案 0 :(得分:1)

是的,我终于解决了。我为那些有同样问题的人写信。

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

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

另外:https://github.com/gionkunz/chartist-js/issues/738