使用 dc.js 绘制具有相同大小块的饼图
Draw a pie chart with same size pieces using dc.js
可能是我的问题很愚蠢,但我需要使用 dc.js 绘制一个饼图,它以年为单位,但无论组数据如何,它们都需要相同的大小。我从 crossfilter.js 获得了相同值的数据组。但是我需要知道还有其他方法可以仅使用维度来获得具有相同大小块的饼图吗?
我想这不再是真正的饼图了。但是,我建议使用 "fake group" 来执行此操作。
首先为此创建一个组,即使我们不会使用这些值,我们也会让 crossfilter 对这些组进行统计。
var group = dimension.group();
然后生成一个 "fake group" ,每次读取它时,都会将所有值设置为 1:
function all_equal_group(group) {
function make_equal(kvs) {
return kvs.map(function(kv) {
return {key: kv.key, value: 1};
});
}
return {
all: function() {
return make_equal(group.all());
},
top: function(N) {
return make_equal(group.top(N));
}
};
}
top
函数是为了防止您使用 capping。也许这里不需要,但不会有什么坏处。
像这样将它应用于您的图表:
pieChart.group(all_equal_group(group));
可能是我的问题很愚蠢,但我需要使用 dc.js 绘制一个饼图,它以年为单位,但无论组数据如何,它们都需要相同的大小。我从 crossfilter.js 获得了相同值的数据组。但是我需要知道还有其他方法可以仅使用维度来获得具有相同大小块的饼图吗?
我想这不再是真正的饼图了。但是,我建议使用 "fake group" 来执行此操作。
首先为此创建一个组,即使我们不会使用这些值,我们也会让 crossfilter 对这些组进行统计。
var group = dimension.group();
然后生成一个 "fake group" ,每次读取它时,都会将所有值设置为 1:
function all_equal_group(group) {
function make_equal(kvs) {
return kvs.map(function(kv) {
return {key: kv.key, value: 1};
});
}
return {
all: function() {
return make_equal(group.all());
},
top: function(N) {
return make_equal(group.top(N));
}
};
}
top
函数是为了防止您使用 capping。也许这里不需要,但不会有什么坏处。
像这样将它应用于您的图表:
pieChart.group(all_equal_group(group));