Php 如何创建具有3个不同系列类别名称的highchart

Php 如何创建具有3个不同系列类别名称的highchart,php,jquery,highcharts,Php,Jquery,Highcharts,我目前正在创建一个新的highcart,我只是想知道这些是否可能在highcart中实现。我想创建一个包含3个类别的购物车 3个类别: $.getJSON('ajax/ams_sla_report_chart.php', function(data,name){ console.log(data); var json_data = ""; var json_name = ""; var chart = new Highcharts.Chart({

我目前正在创建一个新的highcart,我只是想知道这些是否可能在highcart中实现。我想创建一个包含3个类别的购物车

3个类别:

$.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
    console.log(data);
    var json_data = "";
    var json_name = "";
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'containers',
            type: 'column',
            inverted: false    
        },
        legend: {
            layout: 'horizontal',
            align: 'right',
            verticalAlign: 'middle'
          },
        yAxis: {
            title: {
                text: 'SLA PERCENTAGE'
            }

        },
        title: {
                text: 'Priority Based on SLA'
        },

        series:[{
            name:'Low Priority',
            colorByPoint: true,
            data:data[0]
        },

        {
            name:'Medium Priority',
            colorByPoint: true,
            data:data[1]
        },


        {
            name:'High Priority',
            colorByPoint: true,
            data:data[2]
        },


        ]
    });


    json_data = chart.series.data = data;



    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();


});
  • 低优先级
  • 中等优先级
  • 高优先级
  • 因此,如果我的类别是3,那么条形图是3,也有不同的名称和不同的数据

    在my console.log中显示数据结果。

    我的输出:

    我的功能代码:

    $.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
        console.log(data);
        var json_data = "";
        var json_name = "";
        var chart = new Highcharts.Chart({
            chart: {
                renderTo: 'containers',
                type: 'column',
                inverted: false    
            },
            legend: {
                layout: 'horizontal',
                align: 'right',
                verticalAlign: 'middle'
              },
            yAxis: {
                title: {
                    text: 'SLA PERCENTAGE'
                }
    
            },
            title: {
                    text: 'Priority Based on SLA'
            },
    
            series:[{
                name:'Low Priority',
                colorByPoint: true,
                data:data[0]
            },
    
            {
                name:'Medium Priority',
                colorByPoint: true,
                data:data[1]
            },
    
    
            {
                name:'High Priority',
                colorByPoint: true,
                data:data[2]
            },
    
    
            ]
        });
    
    
        json_data = chart.series.data = data;
    
    
    
        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();
    
    
    });
    
    输出必须为:

    $.getJSON('ajax/ams_sla_report_chart.php', function(data,name){
        console.log(data);
        var json_data = "";
        var json_name = "";
        var chart = new Highcharts.Chart({
            chart: {
                renderTo: 'containers',
                type: 'column',
                inverted: false    
            },
            legend: {
                layout: 'horizontal',
                align: 'right',
                verticalAlign: 'middle'
              },
            yAxis: {
                title: {
                    text: 'SLA PERCENTAGE'
                }
    
            },
            title: {
                    text: 'Priority Based on SLA'
            },
    
            series:[{
                name:'Low Priority',
                colorByPoint: true,
                data:data[0]
            },
    
            {
                name:'Medium Priority',
                colorByPoint: true,
                data:data[1]
            },
    
    
            {
                name:'High Priority',
                colorByPoint: true,
                data:data[2]
            },
    
    
            ]
        });
    
    
        json_data = chart.series.data = data;
    
    
    
        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();
    
    
    });
    
    Highcharts.chart('container'{
    图表:{
    类型:“列”
    },
    标题:{
    文本:“基于优先级和命中率的SLA”
    },
    副标题:{
    文本:'来源:WorldClimate.com'
    },
    xAxis:{
    类别:[
    “低”,
    “中等”,
    "高",,
    ],
    十字准星:对
    },
    亚克斯:{
    分:0,,
    标题:{
    文本:“基于百分比(mm)的SLA”
    }
    },
    工具提示:{
    headerFormat:“{point.key}”,
    pointFormat:“{series.name}:”+
    “{point.y}”,
    页脚格式:“”,
    分享:是的,
    useHTML:true
    },
    打印选项:{
    专栏:{
    点填充:0.2,
    边框宽度:0
    }
    },
    系列:[{
    名称:'关闭先生',
    数据:[49.9,71.5,106.4]
    }, {
    名称:'打开先生',
    数据:[83.6,78.8,98.5]
    }, {
    姓名:'总命中率',
    数据:[48.9,38.8,39.3]
    }, {
    名称:“总MR命中率平均值”,
    数据:[50,38.8,39.3]
    }]
    });
    
    您需要将数据预处理为Highcharts要求的格式:

    var data = [
            ['Low Priority', 100, 9],
            ['Medium Priority', 100, 2],
            ['High Priority', 100, 1]
        ],
        categories = [],
        series = [];
    
    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({
                    data: [el]
                });
            }
        });
    });
    
    
    Highcharts.chart('container', {
        ...
        series: series
    });
    

    现场演示:

    嗨@DevGe,你能用硬编码数据创建一些现场示例吗?我知道您希望有3个类别,但我不知道您希望如何安排数据。当然,我会举一个例子@ppotaczek谢谢。嗨@ppotaczek我更新了我的postThanks,但现在您的JSON数据与图表上显示的不同。
    [['Low Priority',100,9],'Medium Priority',100,2],'High Priority',100,1]]
    @ppotaczek-yah你说得对,那么是否可以推送数据以使输出像这样呢?是否可以自定义序列名称?因为每个元素值都有自己不同的名称。Hi@DevGe,是的,您也可以将序列名称放入数组中: