如何使用phplot.php为饼图中的每个数据设置特定的颜色


How to set specific color for each data in pie chart using phplot.php

在我的php页面我有值的下拉列表..对于每一个选择的值,我必须显示所选值的饼状图。使用phplot.php绘制饼状图

我们有setDataColor()函数来设置颜色或默认颜色。但下拉框中的每个值都有相同的数据,但数字不同。例如,

Dropdown values:student1,student2,student3

数据库,

student1:**subj**   **marks**
          eng         10
          maths        0
          sci         30
student2: eng         20
          sci         40
student3: maths       50  

我希望颜色是工程-'红色',数学-'绿色',科学-'蓝色'

如果我们使用phplot函数(setDatacolor()),我们可以传递颜色作为数组(红色,绿色,蓝色)。这将不会给出学生2和学生3饼图的期望输出,因为它只遵循顺序。

但是我希望每次数学都是绿色的,科学是蓝色的,等等。

有什么办法可以做到吗?

像下面这样做:

当下拉列表发生变化时调用函数,如下所示(下拉列表值要发送)

var chart_data = getChartData( Student, EngMarks, mathsMarks, scienceMarks);
                var chart = new Highcharts.Chart( chart_data );
     xAxis : {  
             categories : [ 
                    'English',
                     'Maths', 
                     'Science', 
                  ] },
     series : [ {                       type : 'pie',
                                        name : Student,
                                        data : [ 
                                                {
                                                    name : 'English',
                                                    y : EngMarks,
                                                    color : 'Red'
                                                },
                                                {
                                                    name : 'Maths',
                                                    y : mathsMarks,
                                                    color : 'green'
                                                },
                                                {
                                                    name : 'Science',
                                                    y : scienceMarks,
                                                    color : 'blue'
                                                } ]
                                    } ]