dc.js 数据表中的唯一项
Unique Items in dc.js DataTable
我有一个使用 dc.js 的简单数据表。 Fiddle 这里 (https://jsfiddle.net/7p5d8g0y/)
我的数据以下列格式从数据存储中出现。请注意类别值的数组。
[{"Id":"1","InDate":"31/10/2015","Type":"New","Category":["X1"],"Value":"1.400874145"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":["X1","X2"],"Value":"0"},
{"Id":"3","InDate":"21/10/2014","Type":"New","Category":["X1"],"Value":"4000.4645645665"}]
然后我将数据展平,以便多个类别条目有多行
[{"Id":"1","InDate":"31/10/2015","Type":"New","Category":"X1","Value":"1.400874145"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":"X1","Value":"0"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":"X2","Value":"0"},
{"Id":"3","InDate":"21/10/2014","Type":"New","Category":"X1","Value":"4000.4645645665"}]
问题是现在每个类别的数据表中都有多个条目。即查看 Id 2
的条目
在这种情况下,我只关心在数据表中显示唯一 ID 条目。
所以我的问题是如何在数据表中显示唯一条目?我应该修改数据源中的数据还是可以按原样实现我想要的?
顺便说一句,我尝试根据 this SO question 实现一个假尺寸,但无法让它工作
可能有很多方法可以解决这个问题。我只提两种可能性。
- 使用带有基于数组的键的维度。 dc.js supports "tag" dimensions 的社区分支,其中一行可以与多个键值相关联。如果我理解正确的话,如果您使用此功能,则不需要展平数据。
为您的数据使用组而不是维度table。这有效,as shown in this example,只要您对降序没有问题。这样您就可以显示聚合数据而不是原始行。如果你需要升序,你可以使用这个适配器包装你的组,它添加了一个 .bottom(N)
方法:
function reversible_group(group) {
return {
top: function(N) {
return group.top(N);
},
bottom: function(N) {
return group.top(Infinity).slice(-N).reverse();
}
};
}
我有一个使用 dc.js 的简单数据表。 Fiddle 这里 (https://jsfiddle.net/7p5d8g0y/)
我的数据以下列格式从数据存储中出现。请注意类别值的数组。
[{"Id":"1","InDate":"31/10/2015","Type":"New","Category":["X1"],"Value":"1.400874145"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":["X1","X2"],"Value":"0"},
{"Id":"3","InDate":"21/10/2014","Type":"New","Category":["X1"],"Value":"4000.4645645665"}]
然后我将数据展平,以便多个类别条目有多行
[{"Id":"1","InDate":"31/10/2015","Type":"New","Category":"X1","Value":"1.400874145"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":"X1","Value":"0"},
{"Id":"2","InDate":"21/10/2014","Type":"Old","Category":"X2","Value":"0"},
{"Id":"3","InDate":"21/10/2014","Type":"New","Category":"X1","Value":"4000.4645645665"}]
问题是现在每个类别的数据表中都有多个条目。即查看 Id 2
的条目在这种情况下,我只关心在数据表中显示唯一 ID 条目。
所以我的问题是如何在数据表中显示唯一条目?我应该修改数据源中的数据还是可以按原样实现我想要的?
顺便说一句,我尝试根据 this SO question 实现一个假尺寸,但无法让它工作
可能有很多方法可以解决这个问题。我只提两种可能性。
- 使用带有基于数组的键的维度。 dc.js supports "tag" dimensions 的社区分支,其中一行可以与多个键值相关联。如果我理解正确的话,如果您使用此功能,则不需要展平数据。
为您的数据使用组而不是维度table。这有效,as shown in this example,只要您对降序没有问题。这样您就可以显示聚合数据而不是原始行。如果你需要升序,你可以使用这个适配器包装你的组,它添加了一个
.bottom(N)
方法:function reversible_group(group) { return { top: function(N) { return group.top(N); }, bottom: function(N) { return group.top(Infinity).slice(-N).reverse(); } }; }