gpt4 book ai didi

javascript - 来自 JSON 数组的交叉过滤器维度

转载 作者:行者123 更新时间:2023-11-29 18:18:19 25 4
gpt4 key购买 nike

我是 Crossfilter 的新手,正在尝试弄清楚如何为给定的组创建特定的组和维度。具体来说,这是我正在使用的简化 JSON:

[
{"name": "New York","count": 354,"terms": [{"name": "N/A","hits": 200 }, {"name": "Brooklyn","hits": 225},{"name": "Queens","hits": 1}},
{"name": "San Francisco","hits": 120,"terms": [{"name": "Chinatown","hits": 268},{"name": "Downtown","hits": 22}},
{"name": "Seattle","hits": 34,"terms": [{"name": "N/A","hits": 2},{"name": "Freemont","hits": 25}}
]

我已经有了一个饼图,其中每一 block 代表城市。现在我想要做的是当我点击一个特定的饼图(比如“纽约”)时,我想要一个显示纽约的术语数组值作为维度的行图表。我不确定我在这里使用的术语是否正确,但我基本上想使用饼图作为摘要 View ,使用行图作为向下钻取来显示每个城市的术语。

我如何使用 Crossfilter 做到这一点?我实际上使用的是 dc.js,但我仍然需要在 dc.js 为我呈现之前为 Crossfilter 创建维度和组。

最佳答案

首先,我会稍微重新组织一下您的数据 - 像这样的东西可能适合您:

var data = [{
"city": "New York",
"neighborhood": "N/A",
"hits": 200
}, {
"city": "New York",
"neighborhood": "Brooklyn",
"hits": 225
}, {
"city": "New York",
"neighborhood": "Queens",
"hits": 1
}, {
"city": "San Francisco",
"neighborhood": "Chinatown",
"hits": 268
}, {
"city": "San Francisco",
"neighborhood": "Downtown",
"hits": 22
}, {
"city": "Seattle",
"neighborhood": "N/A",
"hits": 2
}, {
"city": "Seattle",
"neighborhood": "Freemont",
"hits": 25
}];

这是一个相关的 stackoverflow 问题,说明我为什么要展平数据:Does Crossfilter require a flat data structure?

从那里您可以为城市和社区创建维度和组:

var ndx = crossfilter(data),
cityDimension = ndx.dimension(function (d) {
return d.city;
}),
cityGroup = cityDimension.group().reduceSum(function (d) {
return d.hits;
}),
neighborhoodDimension = ndx.dimension(function (d) {
return d.neighborhood;
}),
neighborhoodGroup = neighborhoodDimension.group().reduceSum(function (d) {
return d.hits;
});

现在,当您创建图表时,它们将连接到彼此的选择:

pieChart.width(200)
.height(200)
.slicesCap(4)
.dimension(cityDimension)
.group(cityGroup);

rowChart.width(500)
.height(500)
.dimension(neighborhoodDimension)
.group(neighborhoodGroup);

dc.renderAll();

这是此示例的 jsfiddle:http://jsfiddle.net/djmartin_umich/Xbd4X/

DC.js 尚不支持默认删除值为 0 的行,在这种情况下您可能需要这样做。

如果您需要此行为,您可能需要引用此线程:https://groups.google.com/forum/#!topic/dc-js-user-group/WKofifAkThg

关于javascript - 来自 JSON 数组的交叉过滤器维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21120930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com