试图弄清楚如何为Highchart饼图中的特定数据点分配特定颜色

时间:2019-02-05 20:14:01

标签: highcharts colors series

在某些情况下,如果数据点为空,我不希望包含该数据点,但是我希望每个显示点的颜色都相同。因此,在我的种族示例中,一个特定的实例可能会产生亚裔,西班牙裔和其他人,另一个可能会产生非裔美国人,亚裔和太平洋岛民。我希望在这两种情况下,亚洲人都用相同的颜色表示,而不仅仅是前者在颜色列表中的第一种颜色,而后者在颜色列表中的第二种颜色。

我尝试包括内联颜色,但无法使其正常工作。我包含了PHP代码,因此不会显示null选项。以下是该系列代码的一部分。

    var series = [{
    type: 'pie',
    name: 'Ethnicity',
    colorByPoint: true,
    data: [
    <?php if($afam <> 0){echo"['African American', "  . $afam . "],";} ?>
    <?php if($asia <> 0){echo"['Asian', "  . $asia . "],";} ?>
    <?php if($hisp <> 0){echo"['Hispanic/Latino', "  . $hisp . "],";} ?>
    <?php if($naam <> 0){echo"['Native American', "  . $naam . "],";} ?>
    <?php if($other <> 0){echo"['Other', "  . $other . "],";} ?>
    <?php if($pais <> 0){echo"['Pacific Islander', "  . $pais . "],";} ?>
    <?php if($twop <> 0){echo"['Two or More', "  . $twop . "],";} ?>
    <?php if($whit <> 0){echo"['White', "  . $whit . "],";} ?>

    ]
    }];

1 个答案:

答案 0 :(得分:0)

您可以将内联颜色与数据一起使用,但是您应该将数据定义为对象数组而不是数组,并使用 名称 y color 属性。在您的情况下,可能类似于以下内容(将 YOURCOLOR 替换为您不同的颜色名称或#hex):

var series = [{
type: 'pie',
name: 'Ethnicity',
colorByPoint: true,
data: [
    <?php if($afam <> 0){echo"{'name': 'African American', 'y': "  . $afam . "},";} ?>
    <?php if($asia <> 0){echo"{'name': 'Asian', 'y': "  . $asia . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($hisp <> 0){echo"{'name': 'Hispanic/Latino', 'y': "  . $hisp . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($naam <> 0){echo"{'name': 'Native American', 'y': "  . $naam . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($other <> 0){echo"{'name': 'Other', 'y': "  . $other . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($pais <> 0){echo"{'name': 'Pacific Islander', 'y': "  . $pais . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($twop <> 0){echo"{'name': 'Two or More', 'y': "  . $twop . ", 'color': 'YOURCOLOR'},";} ?>
    <?php if($whit <> 0){echo"{'name': 'White', 'y': "  . $whit . ", 'color': 'YOURCOLOR'},";} ?>

]
}];