我正在制作一个应该在时间轴中显示状态的图表。我认为最适合它的是水平条形图,我添加了这样的数据:
series: [{
data: [?],
name: 'state1'
}, {
data: [?],
name: 'state2'
}, {
data: [?],
name: 'state3'
}, {
data: [?],
name: 'state1'
}, {
....
}, {
data: [?],
name: 'state1'
}]
这是我得到的:
图表看起来像我需要的,但我需要以某种方式分组传说,例如这种情况应该只有3个传说:state1,state2,state3。
我怎样才能达到这样的目标?
答案 0 :(得分:0)
var legends = {};
series.forEach(function(bar){
legends[bar.name] = bar.data;
});
答案 1 :(得分:0)
基于@StAlex的答案,我建议使用类似的解决方案,但没有特定的ECMAScript 5 forEach
:
var legend = {};
for (var i = 0; i < series.length; i++) {
var bar = series[i];
if (!legend[bar.name]) {
legend[bar.name] = 0;
}
legend[bar.name] += bar.data;
}
我认为data
是一个数字。如果不是这样,请添加评论。
答案 2 :(得分:0)
我建议采用不同的方法,使用列范围系列类型。
通过这种方式,您只需使用三个系列,每个时隙都有一个数据点,而不是每个时隙的一个系列。这样就不必操纵图例或伪造其他系列级动作。
这是example
我为之前的问题所做的,它演示了该方法(只有两种状态):
也很容易适应使用日期时间轴,这似乎是你可能想要的。