Highcharts - 结合区域和列范围

时间:2013-10-24 21:01:37

标签: javascript highcharts

如何组合这两个图表: column range - jsfiddlearea 在一个图表中,底部的区域和图表顶部的列范围?

It's an extension of my previous question

我尝试过这样的东西,但它不会起作用:( my jsfiddle

$(function () {
        $('#container').highcharts({
            chart: {
                type: 'area'
            },
            title: {
                text: 'US and USSR nuclear stockpiles'
            },
            subtitle: {
                text: 'Source: <a href="http://thebulletin.metapress.com/content/c4120650912x74k7/fulltext.pdf">'+
                    'thebulletin.metapress.com</a>'
            },
            xAxis: {
                labels: {
                    formatter: function() {
                        return this.value; // clean, unformatted number for year
                    }
                }
            },
            yAxis: {
                title: {
                    text: 'Nuclear weapon states'
                },
                labels: {
                    formatter: function() {
                        return this.value / 1000 +'k';
                    }
                }
            },
            tooltip: {
                pointFormat: '{series.name} produced <b>{point.y:,.0f}</b><br/>warheads in {point.x}'
            },
            plotOptions: {
                area: {
                    pointStart: 1940,
                    marker: {
                        enabled: false,
                        symbol: 'circle',
                        radius: 2,
                        states: {
                            hover: {
                                enabled: true
                            }
                        }
                    }
                },
            columnrange: {
                grouping: false,
                pointPadding: 0,
                dataLabels: {
                    inside: true,
                    enabled: true,
                    useHTML: true,
                    formatter: function () {
                        if (this.y === this.point.low) {
                            var l = '<span style="text-align:left;color:black;margin-left:-' + ((this.point.plotLow - this.point.plotHigh) * 0.55) + 'px">' + this.point.name + ' (' + Highcharts.dateFormat('%Y', this.point.low) + '-';

                            if (new Date().setHours(0, 0, 0, 0) !== new Date(this.point.high).setHours(0, 0, 0, 0)) l += Highcharts.dateFormat('%Y', this.point.high);
                            l += ')</span>';
                            return l;
                        } else return '';
                    }
                }
            }},
            series: [{
                type: 'area',
                name: 'USA',
                data: [null, null, null, null, null, 6 , 11, 32, 110, 235, 369, 640,
                    1005, 1436, 2063, 3057, 4618, 6444, 9822, 15468, 20434, 24126,
                    27387, 29459, 31056, 31982, 32040, 31233, 29224, 27342, 26662,
                    26956, 27912, 28999, 28965, 27826, 25579, 25722, 24826, 24605,
                    24304, 23464, 23708, 24099, 24357, 24237, 24401, 24344, 23586,
                    22380, 21004, 17287, 14747, 13076, 12555, 12144, 11009, 10950,
                    10871, 10824, 10577, 10527, 10475, 10421, 10358, 10295, 10104 ]
            }, {
                type: 'area',
                name: 'USSR/Russia',
                data: [null, null, null, null, null, null, null , null , null ,null,
                5, 25, 50, 120, 150, 200, 426, 660, 869, 1060, 1605, 2471, 3322,
                4238, 5221, 6129, 7089, 8339, 9399, 10538, 11643, 13092, 14478,
                15915, 17385, 19055, 21205, 23044, 25393, 27935, 30062, 32049,
                33952, 35804, 37431, 39197, 45000, 43000, 41000, 39000, 37000,
                35000, 33000, 31000, 29000, 27000, 25000, 24000, 23000, 22000,
                21000, 20000, 19000, 18000, 18000, 17000, 16000]
            },{
            color: 'rgb(100,100,255)',
            pointWidth: 25,
            data: [{
                name: 'Yann B',
                low: Date.UTC(1976, 1, 27, 10, 10),
                high: new Date().valueOf(),
                x: 1 * 10 / 2
            }]
        }]
        });
    });

0 个答案:

没有答案