高图中箱形图中标记的条件着色

时间:2016-06-18 18:04:06

标签: javascript jquery highcharts

以下是可以在此fiddle中查看的方框图的javascript。

$(function () {
    $('#container').highcharts({

        chart: {
            type: 'boxplot'
        },

        title: {
            text: 'Highcharts Box Plot Example'
        },

        legend: {
            enabled: false
        },

        xAxis: {
            categories: ['1', '2', '3', '4', '5'],
            title: {
                text: 'Experiment No.'
            }
        },

        yAxis: {
            title: {
                text: 'Observations'
            },
            plotLines: [{
                value: 932,
                color: 'red',
                width: 1,
                label: {
                    text: 'Theoretical mean: 932',
                    align: 'center',
                    style: {
                        color: 'gray'
                    }
                }
            }]
        },

        series: [{
            name: 'Observations',
            data: [
                [760, 801, 848, 895, 965],
                [733, 853, 939, 980, 1080],
                [714, 762, 817, 870, 918],
                [724, 802, 806, 871, 950],
                [834, 836, 864, 882, 910]
            ],
            tooltip: {
                headerFormat: '<em>Experiment No {point.key}</em><br/>'
            }
        }, {
            name: 'Outlier',
            color: 'black',
            type: 'scatter',
            data: [ // x, y positions where 0 is the first category
                [0, 644],
                [4, 718],
                [4, 951],
                [4, 969]
            ],
            marker: {
                fillColor: 'red'
            },
            tooltip: {
                pointFormat: 'Observation: {point.y}'
            }
        }]
    });
});

我的目的是根据它们所在位置改变圆形点的颜色。例如: 如果异常值大于700我想要它是橙色的。通常,这可以使用格式化程序选项来完成,该选项可用于某些格式的高级图表中的标签。有没有办法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以在Highcharts中使用之前检查数据,并在满足要求时为每个点添加颜色值。示例:http://jsfiddle.net/nshkf75s/

代码的相关部分:

    series: [{
        name: 'Observations',
        data: [
            [760, 801, 848, 895, 965],
            [733, 853, 939, 980, 1080, 'orange'],
            [714, 762, 817, 870, 918],
            [724, 802, 806, 871, 950],
            [834, 836, 864, 882, 910]
        ],
        keys: ['low','q1','median','q3','high','color'],
        ...

答案 1 :(得分:2)

您可以使用区域属性。

        zones: [{
            value: 700,
            color: 'orange'
        }, {
            color: 'white'
        }]

演示:http://jsfiddle.net/m3x3Lwc9/