【发布时间】:2014-10-14 17:10:00
【问题描述】:
我正在使用 Js 库 (dhtmlx) 创建堆积条形图。 这是我的输出:
json数据格式如下:
var data = [
{ "allocated":"20", "unallocated":"2", "day":"01/01/2014" },
{ "allocated":"12", "unallocated":"0", "day":"02/01/2014" },
{ "allocated":"2", "unallocated":"18", "day":"03/01/2014" },
{ "allocated":"22", "unallocated":"2", "day":"04/01/2014" },
{ "allocated":"3", "unallocated":"13", "day":"05/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"06/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"07/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"08/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"09/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"10/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"11/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"12/01/2014" },
{ "allocated":"6", "unallocated":"2.4", "day":"13/01/2014" },
{ "allocated":"14", "unallocated":"7", "day":"14/01/2014" },
];
但是我设法通过 WEEK 将我的 JSON 数据分组 使用以下方法:
var groupedByWeek = _.groupBy(data, function(item) {
var dateMoment = moment(item.day,"DD/MM/YYYY");
weeks = dateMoment.week();
array = [weeks]
return array;
});
现在,参考我上传的图片,我成功获得了按周分组的数据。 根据我给定的数据,我从中得到了 3 个数组索引。
Object { 1: Array[4], 2: Array[7], 3: Array[3] }
现在我想将索引 1 设置为我的图表的默认值。然后逐步点击“NEXT”按钮,数组索引不断变化。
简而言之,我想在 X 轴上每周传递数据。有没有办法一一传递数组索引?请帮我。 提前致谢。
我的 html 文件的完整代码:
<body>
<div id="chart1" style="width:1020px;height:300px;border:0px solid #000000;">
<div><a href="#">Next</a></div>
</div>
<script>
var barChart1 = new dhtmlXChart({
view:"stackedBar",
container:"chart1",
value:"#allocated#",
label:"#allocated#",
color: "#a24689",
// gradient:"falling",
width:40,
tooltip:{
template:"#allocated#"
},
xAxis:{
title:"Days",
template:"#day#",
},
yAxis:{
title:"Hours",
start:0,
step:4,
end:24
},
legend:{
values:[{text:"Compeleted Activities",color:"#a24689"},{text:"Undefined",color:"#F9D544"}],
valign:"top",
align:"center",
width:110,
layout:"x"
}
});
barChart1.addSeries({
value:"#unallocated#",
color:"#F9D544",
label:"#unallocated#",
tooltip:{
template:"#unallocated#"
}
});
var groupedByWeek = _.groupBy(data, function(item) {
var dateMoment = moment(item.day,"DD/MM/YYYY");
weeks = dateMoment.week();
array = [weeks]
return array;
});
console.log(groupedByWeek)
barChart1.parse(data,"json");
// console.log(data)
</script>
【问题讨论】:
-
也许您应该获取
groupedByWeek操作返回的数据,并根据您选择的索引值从中构造一个新的 json 数据数组。然后将该数组传递给barChart1.parse()操作。
标签: javascript arrays json charts increment