javascript - 将字符串数组解析为图表

标签 javascript highcharts

我正在尝试解析一个字符串数组以供 Highcharts 使用。当值是静态的时,图表呈现。传递数组时,它不会呈现。我验证了正在解析的字符串 here .

具体行是

//This works
chart.addSeries({name: this.series_name, color: this.series_color, data: [[0.129, 0.066], [0.029, 0.218], [-0.113, 0.231]]});

//This does not
chart.addSeries({name: this.series_name, color: this.series_color, data: series_clean});

完整

$(document).ready(function() {
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container',
            type: 'scatter',
            zoomType: 'xy'
        },
        series: [
            {data: []}
        ]
    });

    function reloadData() {
        $.ajax({
            type: 'GET',
            url: "...",
            dataType: "JSON"
        }).done(function(data) {
            //Remove existing series from chart
            while(chart.series.length > 0)
                chart.series[0].remove(true);

            var i = 0;
            $.each(data.users, function(firstIndex, user) {
                $.each(user, function() {
                    //Parse incoming data array to float type
                    var series_clean = new Array();

                    var series_data_groups = this.series_data.split("|");

                    for(var j = 0; j < series_data_groups.length; j++) {
                        var series_data_values = series_data_groups[j].split(",");
                        var x = parseFloat(series_data_values[0]).toFixed(3);
                        var y = parseFloat(series_data_values[1]).toFixed(3);
                        series_clean.push([x, y]);
                    }

                    //Push series to chart
                    chart.addSeries({name: this.series_name, color: this.series_color, data: series_clean});
                    i++;
                });
            });

            chart.redraw();
        });
    }

    setInterval(function(){reloadData(); }, 2000);
});

控制台错误

Uncaught Error: Highcharts error #14: www.highcharts.com/errors/14
    at Object.a.error (highcharts.js:10)
    at n.setData (highcharts.js:284)
    at n.init (highcharts.js:277)
    at a.Chart.initSeries (highcharts.js:243)
    at highcharts.js:317
    at a.fireEvent (highcharts.js:29)
    at a.Chart.addSeries (highcharts.js:317)
    at Object.<anonymous> (chart_scatter_live2.html:109)
    at Function.each (jquery-3.2.0.min.js:2)
    at Array.<anonymous> (chart_scatter_live2.html:95)

最佳答案

xy 是字符串,因为 toFixed() 返回一个字符串:

var x = parseFloat(series_data_values[0]).toFixed(3);
var y = parseFloat(series_data_values[1]).toFixed(3);

这会导致 Highcharts Error #14 - String value sent to series.data, expected Number

关于javascript - 将字符串数组解析为图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43023856/

相关文章:

javascript - 我如何在周末使用 javascript 更改图片?

javascript - 无限循环中的字体颜色变化

javascript - Indexeddb 中止错误

javascript - 在 wordpress 中添加 highchart

javascript - 如何使用 Hightchart-ng 制作 Highcharts 半圆 donut chart

javascript - 请,需要帮助循环 Javascript 事件

javascript - 在 Highcharts.js 中获取值

javascript - 在 Highstock 中重置/设置 ZoomType 控件

javascript - HighCharts JavaScript 错误

javascript - Google 条形图 - 如何使用 JSON 为每个条目获取 2 个不同的条形图