将2个系列合并为一个图表(未堆叠)

时间:2015-02-10 07:49:43

标签: javascript angularjs highcharts

我正在尝试将两个单独的系列组合在一个图表中,而我正在使用Highcharts。要求如附图所示我尝试了http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/plotoptions/column-grouping-false/

中所示的选项
$(function () {

// First, let's make the colors transparent
Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function (color) {
    return Highcharts.Color(color)
        .setOpacity(0.5)
        .get('rgba');
});

$('#container').highcharts({
    chart: {
        type: 'column'
    },
    title: {
        text: 'Monthly Average Rainfall'
    },
    subtitle: {
        text: 'Source: WorldClimate.com'
    },
    xAxis: {
        categories: [
            'Jan',
            'Feb',
            'Mar',
            'Apr',
            'May',
            'Jun',
            'Jul',
            'Aug',
            'Sep',
            'Oct',
            'Nov',
            'Dec'
        ]
    },
    yAxis: {
        min: 0,
        title: {
            text: 'Rainfall (mm)'
        }
    },
    legend: {
        layout: 'vertical',
        backgroundColor: '#FFFFFF',
        align: 'left',
        verticalAlign: 'top',
        x: 100,
        y: 70,
        floating: true,
        shadow: true
    },
    tooltip: {
        shared: true,
        valueSuffix: ' mm'
    },
    plotOptions: {
        column: {
            grouping: false,
            shadow: false
        }
    },
    series: [{
        name: 'Tokyo',
        data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
        pointPadding: 0

    }, {
        name: 'New York',
        data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3],
        pointPadding: 0.1

    }, {
        name: 'London',
        data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2],
        pointPadding: 0.2

    }, {
        name: 'Berlin',
        data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1],
        pointPadding: 0.3

    }]
});
});

我也尝试了其他选项,但无法达到解决方案。我的问题是:我们可以在highchart中获得此功能吗?

感谢。 enter image description here

1 个答案:

答案 0 :(得分:3)

正如igoel所说,玩分组和pointPlacement就足够了。

不幸的是,图例不支持系列分组,因此您必须使用labelFormatter对其进行格式化。例如。

legend: {
    layout: 'horizontal',
    backgroundColor: '#FFFFFF',
    floating: true,
    align: 'left',
    verticalAlign: 'top',
    x: 90,
    y: 45,
    title: { text: 'Total Pieces' },
    labelFormatter: function () {                
        return this._i < 3 ? this.name + '  per hour (thousands)' : this.name + ' per month (millions)';
    }

像这样的jsfiddle:http://jsfiddle.net/e8aydv3h/1/