Highcharts - 堆叠完整系列(条形图)
Highcharts - Stack a full serie (Bar chart)
所以我有 2 个系列的事件数据:
- 有观点的系列
- 价值 € 的系列赛
每个系列中的 1 个项目与 1 个事件相关
我想要一个包含 2 列的堆积条形图:'Views'、'Value'
每个事件都有自己的颜色。
这是我目前的情况:
$('#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 做到这一点吗?
编辑
更接近我正在寻找的东西:
但我找不到正确设置第二个 yAxis 的方法
如果要按类别显示 y 轴,则需要将所有数据拆分为单独的点。您可以使用 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
}]
}]
所以我有 2 个系列的事件数据:
- 有观点的系列
- 价值 € 的系列赛
每个系列中的 1 个项目与 1 个事件相关
我想要一个包含 2 列的堆积条形图:'Views'、'Value'
每个事件都有自己的颜色。
这是我目前的情况:
$('#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 做到这一点吗?
编辑
更接近我正在寻找的东西:
但我找不到正确设置第二个 yAxis 的方法
如果要按类别显示 y 轴,则需要将所有数据拆分为单独的点。您可以使用 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
}]
}]