如何显示前 n 个项目的图表?
How to display a graph of top n items?
我有一个活动列表,想显示谁是顶级参与者(那些来得更频繁的人)
我做的是行图
var dim = ndx.dimension (function(d) {
if (!d.guest) {
return "Not mentioned";
}
return d.guest;
});
var group = dim.group().reduceSum(function(d) { return 1; });
var graph = dc.rowChart (".topvisitor")
.margins({top: 0, right: 10, bottom: 20, left: 10})
.height(300)
.width(200)
.cap(10)
.x(d3.scale.ordinal())
.elasticX(true)
.ordering(function(d){return -d.value})
.dimension(dim)
.group(group);
这种方法可行,但我想删除一个很大的 "other"。我是在滥用 rowChart 来创建 topN 图吗?
所以我遵循的路径是首先过滤数据(通过创建一个具有新的 all() 函数的假组,该函数 return 是真实组的顶部(n)):
var group = dim.group().reduceSum(function(d) { return 1; });
var filteredGroup = (function (source_group) {return {
all:function () {
return source_group.top(10).filter(function(d) {
return d.key != "Not mentioned";
});
}
};})(group);
对于图表,使用这个组
.group(filteredGroup);
我认为它可以解决问题,尽管得到了 Gordon 的认可,但仍然感觉有点老套,但它确实起作用了(上限+过滤一些数据)
你必须移除上限,或者实现 top 功能(与本例中的所有功能相同)
附带说明:rowChart 似乎是您可以覆盖数据函数的图表之一,因此:
.data(function (group) {
return group.top(10);
})
也可以(但不会过滤 "Not mentioned" 项
我有一个活动列表,想显示谁是顶级参与者(那些来得更频繁的人)
我做的是行图
var dim = ndx.dimension (function(d) {
if (!d.guest) {
return "Not mentioned";
}
return d.guest;
});
var group = dim.group().reduceSum(function(d) { return 1; });
var graph = dc.rowChart (".topvisitor")
.margins({top: 0, right: 10, bottom: 20, left: 10})
.height(300)
.width(200)
.cap(10)
.x(d3.scale.ordinal())
.elasticX(true)
.ordering(function(d){return -d.value})
.dimension(dim)
.group(group);
这种方法可行,但我想删除一个很大的 "other"。我是在滥用 rowChart 来创建 topN 图吗?
所以我遵循的路径是首先过滤数据(通过创建一个具有新的 all() 函数的假组,该函数 return 是真实组的顶部(n)):
var group = dim.group().reduceSum(function(d) { return 1; });
var filteredGroup = (function (source_group) {return {
all:function () {
return source_group.top(10).filter(function(d) {
return d.key != "Not mentioned";
});
}
};})(group);
对于图表,使用这个组
.group(filteredGroup);
我认为它可以解决问题,尽管得到了 Gordon 的认可,但仍然感觉有点老套,但它确实起作用了(上限+过滤一些数据)
你必须移除上限,或者实现 top 功能(与本例中的所有功能相同)
附带说明:rowChart 似乎是您可以覆盖数据函数的图表之一,因此:
.data(function (group) {
return group.top(10);
})
也可以(但不会过滤 "Not mentioned" 项