如何在HighCharts的2点之间制作颜色填充区域

时间:2013-10-24 14:14:55

标签: javascript charts highcharts

我想通过点击在区域图表中的2点之间进行颜色填充。在此图表http://jsfiddle.net/nnqAb/

$(function () {
$('#container').highcharts({
    chart: {
        type: 'area'
    },
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },

    series: [{
        data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
    }]
});

// button handler
$('#button').click(function() {
    var chart = $('#container').highcharts();
    chart.series[0].data[3].update({
        y:150,
        marker:{
            fillColor: 'red',
        }
    }
   );

    chart.series[0].data[4].update({
        y:150,
        marker:{
            fillColor: 'red',
        }
    }
   );
});

});

点击“五月”点,我想得到这样的图表http://d.pr/i/7IcE有可能成功吗?

2 个答案:

答案 0 :(得分:1)

是的!这是可能的。

您只需要一个区域图表,在系列数据中对齐空值:

$(function () {
        $('#container').highcharts({
            chart: {
                type: 'area',
            }
            series: [{
                name: 'John',
                data: [null, null, 3, 3, 3, null, null, null] //when there's no "Jane" data, show "John" data
            }, {
                name: 'Jane',
                data: [1, 1, 3, null, 3, 1, 2, 8]
            }]
        });
    });

完整演示:http://jsfiddle.net/adamb/RXLnQ/

答案 1 :(得分:0)

是的,这肯定是可能的。我们需要使用2个系列的数据。

在initail中加载一个将使用空数据,另一个将是正常数据。

发生点击时,为第二个系列提供一些数据,以便它可以显示您想要的内容

就像在这里http://jsfiddle.net/nnqAb/3/

一样

还有另一种方法可以在点击按钮时添加一个系列

chart.addSeries({
            data: [null,null,null, 150, 150, ],
                   color: 'red'
        });

http://jsfiddle.net/nnqAb/1/

更新了小提琴