Highcharts JSON十进制数据格式问题



我正在尝试解决一个奇怪的问题。我从ajax调用中得到一个json数组,我试图在highcart中绘制它。我已经从同一个数组映射了其他图形,一切都很好,直到我遇到了十进制数字(可能是巧合)。在这种情况下,日期显示良好,但y轴(价格)是空的。

现在,我可以'alert(s5)',并且数据显示在警报框上。我还运行了一个控制台日志,看到"["5.15","4.94","4.43","4.49","4.42","4.41"]"(也许是数字中的"导致了这个问题!?)

如果我手动将值放入highcharts数据中,它可以完美地工作,但我只是无法将数组分配给值并使其显示

代码看起来像:

    function draw_flow(garray)
    {
    var obj = JSON.stringify(garray);
    obj = JSON.parse(obj);
    s5 = obj["closeprice"][0];
    ticks = obj["date"][0];
alert(s5); //THIS DISPLAYS DATA FINE! "5.15,4.94,4.43,4.42,4.41"

          $('#chart3').highcharts({
                chart: {
                    marginBottom: 80
                },
                xAxis: {
                    categories: ticks
                },
                yAxis: {
                    labels: {
                        align: 'left',
                        x: 0,
                        y: -2
                    }
                },
                series: [{
                    data: s5 //This does not work
                    //data: [5.15,4.94,4.43,4.42,4.41] //this works
                }]
            });
        }

你是正确的。Y轴不显示的原因是数据中的字符串。(应读作数字)

您必须将数据从字符串转换为数字数组,这可以通过以下

实现
s5 = s5.map(Number);

这是一个示例jsFiddle,它显示了它的作用http://jsfiddle.net/e803sjsp/

有点厚脸皮,但你是否检查过s5实际上是一个数组,而不是逗号分隔值的字符串。

最新更新