Php 如何根据HighChart中的类别将静态序列名称设置为元素结果

Php 如何根据HighChart中的类别将静态序列名称设置为元素结果,php,jquery,highcharts,Php,Jquery,Highcharts,我对序列名称有疑问,如何根据HighChart中的类别将静态序列名称设置为元素 预期输出如下: categories = [], series = []; $.getJSON('ajax/ams_sla_report_chart.php', function(data,name){ data.forEach(function(arr) { arr.forEach(function(el, i) { if (i === 0) {

我对序列名称有疑问,如何根据HighChart中的类别将静态序列名称设置为元素

预期输出如下:

categories = [],
series = [];

$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){


    data.forEach(function(arr) {
        arr.forEach(function(el, i) {

            if (i === 0) {
                categories.push(el);

            } else if (series[i - 1]) {
                series[i - 1].data.push(el);

            } else {

                series.push({
                    name:['MR','MR_HIT','MR_HIT_PERCENTAGE'],       
                    data: [el]

                });


            }
        });
    });

    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'containers',
            type: 'column',
            inverted: false    
        },
        legend: {
            layout: 'horizontal',
            align: 'right',
            verticalAlign: 'middle'
          },
        xAxis: {
            categories: categories
        },
        title: {
           text: 'Priority Based on SLA'
        },

        series:series

    });


    function showValues() {
    $('#alpha-value').html(chart.options.chart.options3d.alpha);
    $('#beta-value').html(chart.options.chart.options3d.beta);
    $('#depth-value').html(chart.options.chart.options3d.depth);
    }

    // Activate the sliders
    $('#sliders_eng input').on('input change', function () {
        chart.options.chart.options3d[this.id] = parseFloat(this.value);
        showValues();
        chart.redraw(false);
    });

    showValues();


});

到目前为止,我已经在我的web应用程序上找到了结果。

是否可以根据我想在序列名称上添加的内容更改序列1、序列2、序列3

我这里有我的代码:

categories = [],
series = [];

$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){


    data.forEach(function(arr) {
        arr.forEach(function(el, i) {

            if (i === 0) {
                categories.push(el);

            } else if (series[i - 1]) {
                series[i - 1].data.push(el);

            } else {

                series.push({
                    name:['MR','MR_HIT','MR_HIT_PERCENTAGE'],       
                    data: [el]

                });


            }
        });
    });

    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'containers',
            type: 'column',
            inverted: false    
        },
        legend: {
            layout: 'horizontal',
            align: 'right',
            verticalAlign: 'middle'
          },
        xAxis: {
            categories: categories
        },
        title: {
           text: 'Priority Based on SLA'
        },

        series:series

    });


    function showValues() {
    $('#alpha-value').html(chart.options.chart.options3d.alpha);
    $('#beta-value').html(chart.options.chart.options3d.beta);
    $('#depth-value').html(chart.options.chart.options3d.depth);
    }

    // Activate the sliders
    $('#sliders_eng input').on('input change', function () {
        chart.options.chart.options3d[this.id] = parseFloat(this.value);
        showValues();
        chart.redraw(false);
    });

    showValues();


});

您需要在循环外部定义序列名称数组,并在循环中仅使用一个名称:

var seriesNames = ['MR', 'MR_HIT', 'MR_HIT_PERCENTAGE'],
...
data.forEach(function(arr) {
    arr.forEach(function(el, i) {
        if (i === 0) {
            categories.push(el);
        } else if (series[i - 1]) {
            series[i - 1].data.push(el)
        } else {
            series.push({
                name: seriesNames[i - 1],
                data: [el]
            });
        }
    });
});

现场演示:

您好@DevGe,您希望一个类别只包含一个系列吗?结果应该是这样的:,但是没有
堆叠
?@ppotaczek是的,每个类别的值都有不同的命名。@ppotaczek就像我在问题顶部分享的一样。。例如,这个系列1='New series1'@ppotaczek,如你所见,兄弟,为什么会出现这些名称,重复?感谢@ppotaczek帮助我现在解决了我的问题非常感谢