HighStack是一个完整的系列(条形图)

HighStack a full serie (Bar chart)

本文关键字:系列 条形图 一个 HighStack      更新时间:2024-01-02

所以我有两个系列的事件数据:

  • 有风景的系列
  • 价值欧元的系列

每个系列中的1个项目与1个事件相关

我想要一个2列的堆叠条形图:"视图","值"

每个活动都有自己的颜色。

以下是我目前所拥有的:

$('#container').highcharts({
    chart: {
        type: 'bar'
    },
    title: {
        text: 'Stacked bar chart'
    },
    xAxis: {
        categories: ['Views', 'Value']
    },
    yAxis: [{
        min: 0,
        title: {
            text: 'Value (€)'
        }
    },{
        min: 0,
        opposite: true,
        title: {
            text: 'Views'
        }
    }],
    legend: {
        reversed: true
    },
    plotOptions: {
        series: {
            stacking: 'normal'
        }
    },
    series: [{
        name: 'Views',
        data: [{
            name: 'Event1',
            y: 500
        },{
            name: 'Event2',
            y: 200
        },{
            name: 'Event3',
            y: 350
        }],
        yAxis: 1
    }, {
        name: 'Value',
        data: [{
            name: 'Event1',
            y: 3000
        },{
            name: 'Event2',
            y: 2000
        },{
            name: 'Event3',
            y: 1500
        }]
    }]
});

我已经为值和视图设置了2个yAxis。

我的问题是:

数据是按事件而不是按类别堆叠的。正如你所看到的,这甚至不是一个好的堆叠,因为第一个小节隐藏了第二个小节。

Highcharts有可能做到这一点吗?

编辑

初始JSFIDDLE

更接近我想要的东西:

新Fiddle

但我找不到正确设置第二个yAxis 的方法

如果要按类别显示yAxis,则需要将所有数据拆分为单独的点。您可以使用linkedTo选项连接系列(图例中)。这需要分别设置每个系列的颜色(以获得匹配的颜色),请参阅演示:http://jsfiddle.net/fxadv20h/4/

代码:

    series: [{
        id: 'e3',
        name: 'Event 3',
        data: [{
            name: 'Views',
            y: 500
        }],
        yAxis: 1
    },{
        id: 'e2',
        name: 'Event 2',
        data: [{
            name: 'Views',
            y: 200
        }],
        yAxis: 1
    },{
        id: 'e1',
        name: 'Event 1',
        data: [{
            name: 'Views',
            y: 150
        }],
        yAxis: 1
    }, {
        linkedTo: 'e3',
        name: 'Event 3',
        data: [{
            x: 1,
            name: 'Value',
            y: 1000
        }]
    },{
        linkedTo: 'e2',
        name: 'Event 2',
        data: [{
            x: 1,
            name: 'Value',
            y: 2000
        }]
    },{
        linkedTo: 'e1',
        name: 'Event 1',
        data: [{
            x: 1,
            name: 'Value',
            y: 1500
        }]
    }]