Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/425.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript highcharts仅显示系列中最后一个元素的图表_Javascript_Jquery_Ajax_Highcharts - Fatal编程技术网

Javascript highcharts仅显示系列中最后一个元素的图表

Javascript highcharts仅显示系列中最后一个元素的图表,javascript,jquery,ajax,highcharts,Javascript,Jquery,Ajax,Highcharts,我通过引用json数据在highcharts中绘制多个系列。json数据的配置如下: {"data": {"words with friends": [[1365034819.212261, 107], [1366071619.212278, 224]], "snacksss": [[1364775619.212285, 786], [1366849219.212291, 445]], "ticktackloot": [[1365207619.212297, 85], [1367799619.2

我通过引用json数据在highcharts中绘制多个系列。json数据的配置如下:

{"data": {"words with friends": [[1365034819.212261, 107], [1366071619.212278, 224]], "snacksss": [[1364775619.212285, 786], [1366849219.212291, 445]], "ticktackloot": [[1365207619.212297, 85], [1367799619.212303, 803]], "bike race": [[1364343619.212309, 293], [1367886019.212315, 572]]}}
其中,每个字典中的第一个也是唯一一个元素是列表的列表。每个列表列表都包含一个带有时间戳和任意值的列表。每个字典的键表示一个系列。问题是,该系列仅绘制每个列表列表中的最后一个列表。时间戳在x轴上,任意值在y轴上。最后得到的y点是224445803和572。我希望他们都来。代码如下:

var chart;  // global
function requestData() 
{
    $.ajax(
    {
        url: 'test.json',
        success: function(response) 
        {
            // SINCE response IS TURNED INTO AN OBJECT LITERAL
            // ASSOCIATIVE ARRAY, WE CAN ACCESS data
            for (var key in response.data)
            {
                //extract every timestamp and multiply it by 1000
                //because JS processes timestamps in microseconds.
                //Reinsert in array
                for(var counter=0;counter<response.data[key].length;counter++)
                {
                    insert_array=[]
                    //insert_array.push([response.data[key][counter][0]*1000,response.data[key][counter][1]])
                    insert_array.push([response.data[key][counter][0]*1000,response.data[key][counter][1]])

                    if(counter==response.data[key].length-1)
                    {
                        var seriesData=insert_array;

                        var seriesName = key;

                        console.log("   processing " + seriesName + "=" + seriesData);
                        var series = 
                        {
                            name: seriesName,
                            data: seriesData,
                            lineWidth: 15
                        };

                        chart.addSeries(series);
                    }
                }
            }
        },
        cache: false
    });
}

$(document).ready(function()
{
    console.log("preparing document...");
    chart = new Highcharts.Chart(
    {
        chart: 
        {
            renderTo: 'container1',
            type: 'bar',
            events: 
            {
                load: requestData
            }
        },
        title: 
        {
            text: 'Top Offers'
        },
        xAxis: 
        {
            type: 'datetime',
            title:
            {
                text: 'Offers'
            }
        },
        yAxis: 
        {
            title:
            {
                text: 'Rewards'
            }    
        },
        series: []
    });   
 });
var图表;//全球的
函数requestData()
{
$.ajax(
{
url:'test.json',
成功:功能(响应)
{
//因为响应被转换为对象文本
//关联数组,我们可以访问数据
for(响应中的var键。数据)
{
//提取每个时间戳并将其乘以1000
//因为JS以微秒为单位处理时间戳。
//重新插入阵列

对于(var counter=0;counter尝试如下更改循环内的cody:

//extract every timestamp and multiply it by 1000 because JS processes timestamps in microseconds. Reinsert in array
insert_array=[]

for(var counter=0;counter<response.data[key].length;counter++)
    {                      
        //insert_array.push([response.data[key][counter][0]*1000,response.data[key][counter][1]])
        insert_array.push([response.data[key][counter][0]*1000,response.data[key][counter][1]])
    ...
//提取每个时间戳并将其乘以1000,因为JS以微秒为单位处理时间戳。重新插入数组中
插入_数组=[]

对于(var counter=0;counter)您在循环中声明变量,在每次迭代中覆盖,因此只保留最后一次迭代中的值。您的series对象在输出中的外观如何?