使用交叉筛选器转换数据集
Transforming a dataset with crossfilter
我正在尝试使用dc.js创建一个面板,我想自定义数据表的可视化方式。所以我的数据看起来像这个
agegroup gender group scores total
18-24 M 1 0.04 1
45-54 F 2 2.23 13
25-34 M 1 0.74 6
25-34 M 2 1.47 8
18-24 F 1 2.88 7
35-44 F 2 3.98 14
当我初始化一个数据表时,它看起来和我原来的csv一样。但是,如果我想要怎么办
agegroup gender group1.scores group1.total group2.scores group2.total
18-24 M 0.04 1 0.0 0
18-24 F 2.88 1 0.0 0
25-34 M 0.74 8 1.47 8
25-34 F 0.0 0 0.0 0
以下是我如何初始化和设置我的数据表
dataTable = dc.dataTable('#data-table');
var tableDim = ndx.dimension(function(d) {
return d.gender;
});
dataTable
.width(400)
.height(800)
.dimension(tableDim)
.group(function(d){
return "Counts"
})
.size(20)
.columns([
function(d){
return d.gender;},
function(d){
return d.agegroup;
},
function(d){
return d.group;
},
function(d){
return d.scores;
},
function(d){
return d.total;
},
])
.order(d3.ascending)
.sortBy(function(d){
return d.gender;
});
我知道交叉过滤器可以让你快速过滤和子集数据,但我不确定它将如何转换数据集。谢谢
到目前为止,我能够做到这一点。
var tableDim = ndx.dimension(function (d) {
return d.agegroup;
});
var dataTable = dc.dataTable("#someTable");
dataTable.width(300).height(800)
.dimension(tableDim)
.group(function (d) {
return "Counts";
})
.columns([
function (d) {
return d.agegroup;
},
function (d) {
return d.gender;
},
function (d) {
if (d.group == 1) return d.scores;
else return 0;
},
function (d) {
if (d.group == 1) return d.total;
else return 0;
},
function (d) {
if (d.group == 2) return d.scores;
else return 0;
},
function (d) {
if (d.group == 2) return d.total;
else return 0;
}]);
dc.renderAll();
以下是使用上述代码的JSFiddle。下次当你在SO上要求这样的解决方案时,使用这个或制作一个新的。
请记住,使用dc.dataTable
可能无法减少数据集中的行数。如果您真的想减少行数,您可以尝试group().reduce()
方法,并为group1.total、group1.scores等创建新字段。
相关文章:
- React中的数据集表示
- 使用相同的数据集绘制各种符号
- 多维数据集网格未在指定的分区中绘制
- chart.js 2.0为数据集添加了新属性
- Kendo网格中数据集的最高值
- 具有大型数据集的组件仅在 IE11/Edge 上运行缓慢
- 具有关联数组数据集的D3.js表
- javascript中网络图表的大型数据集
- 具有多个数据集的分组散点图D3
- 如何在web上动态可视化数据集
- Javascript D3如何从CSV访问和操作数据集
- Chart.js2.X中的条形值-数据集元数据未定义
- 访问HTML数据集
- D3.js如何只创建一个绑定到多个数据项的数据集的元素
- WebGL多纹理多维数据集
- 如何外部联接两个数据集(基于多个主键)
- 使用JQUERY将包含数据集的JSON绑定到dropdownlist
- 将json结构转换为可用的javascript数据集
- 是否有一个可行的跨浏览器库用于类似sencha的多维数据集转换?
- 使用交叉筛选器转换数据集