javascript - 如何使用 json 数组映射序列和数据点

标签 javascript json highcharts

我正在使用 highchart 创建多串行折线图。

我的 Json (cleanData) 看起来像这样......

[{
    "key": "port_A",
    "value": [
        [1447596900000, 0],
        [1447596960000, 0],
        [1447597020000, 1]
    ]
}, {
    "key": "port_B",
    "value": [
        [1447596900000, 0],
        [1447596960000, 4]
    ]
} {
    "key": "port_C",
    "value": [
        [1447596900000, 0],
        [1447596960000, 0],
        [1447597020000, 1]
    }]

如何将“键”映射为序列,将“值”映射为 highchart 上的数据点

$(document).ready(function () {

    Highcharts.setOptions({
        colors: ['#058DC7', '#50B432', '#ED561B', '#DDDF00', '#24CBE5', '#64E572', '#FF9655', '#FFF263', '#6AF9C4']
    });

    var chart = new Highcharts.Chart({

        chart: {
            renderTo: 'container',
            type: 'pie',
            zoomType: 'y',
            resetZoomButton: {
                position: {
                    // align: 'right', // by default
                    // verticalAlign: 'top', // by default
                    x: 0,
                    y: -30
                }
            },
            options3d: {
                enabled: true,
                alpha: 15,
                beta: 15,
                depth: 50
            }
        },

        title: {
            text: 'Users by region',
            x: -20 //center
        },
        subtitle: {
            text: '',
            x: -20
        },

        xAxis: {
            type: 'category',
            //categories: ['APAC', 'test2', 'test3', 'test4'],
            labels: {
                rotation: -45,
                style: {
                    'fontSize': '10px',
                        'fontFamily': 'Verdana, sans-serif',
                        'color': '#333',
                        'text-transform': 'uppercase',
                        'font-weight': '600'
                }
            }
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Number of users '
            }
        },
        legend: {
            enabled: false
        },
        tooltip: {
            pointFormat: '#users: <b>{point.y:.1f}</b>'
        },
        credits: {
            enabled: false
        },
        exporting: {
            enabled: false
        },
        plotOptions: {
            column: {
                depth: 25
            }
        },
        series: []

    });


    var cleanData1 = JSON.stringify(myArray);
    var cleanData = $.parseJSON(cleanData1);
    console.log(JSON.stringify(cleanData));
    chart.series = cleanData;

});

最佳答案

您需要迭代 json 并将名称和数据放入对象中,如下所示

 var seriesData = [];
 $.each(clearData, function(i,item){
 seriesData.push({name:clearData[i].key,data:clearData[i].value});
  console.log("seriesData"+JSON.stringify(seriesData));
 }); 

See working fiddle here

关于javascript - 如何使用 json 数组映射序列和数据点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33820744/

相关文章:

javascript - 使用 CakePHP 的文本输入创建弹出窗口

python - 如何抓取 JSON 网页

json - Grails 将请求作为 JSON 发送并在 Controller 中解析它

javascript - Highcharts 图例上的自定义样式

javascript - 如何返回 AngularJS 函数的 $http 响应?

Javascript 导出 - 实例化变量/对象

ruby - 在使用 Ruby 连接到 HTTPS url 并将源数据传递给 Nokogiri 方面需要帮助

javascript - 从 Highstock 中的 RangeSelector 获取当前选中的范围

javascript - 所有零值的条形图标签对齐

javascript - 批量编辑 PDF 以进行分发