交叉过滤查询

2023-12-23

是否可以过滤以数组作为值的交叉过滤数据集?

例如,假设我有以下数据集:

var data = [
  {
    bookname: "the joy of clojure",
    authors: ["Michael Fogus", "Chris Houser"],
    tags: ["clojure", "lisp"]
  },
  {
    bookname: "Eloquent Ruby",
    authors: ["Russ Olsen"],
    tags: ["ruby"]
  },
  {
    bookname: "Design Patterns in Ruby",
    authors: ["Russ Olsen"],
    tags: ["design patterns", "ruby"]
  }
];

有没有一种简单的方法来访问带有特定标签的书籍?还有有特定作者的书吗?到目前为止,我理解如何使用 crossfilter 的方式让我做了这样的事情:

var filtered_data = crossfilter(data);
var tags = filtered_data.dimension(function(d) {return d.tags});
var tag = tags.group();

然后当我访问分组时(像这样):

tag.all()

我明白了:

[{key: ["clojure", "lisp"], value: 1}, 
 {key: ["design patterns", "ruby"], value: 1}, 
 {key: ["ruby"], value: 1}]

当我宁愿这样的时候:

[{key: "ruby", value: 2}, 
 {key: "clojure", value: 1}, 
 {key: "lisp", value: 1},
 {key: "design patterns", value: 1}]

我已在下面的代码中添加了注释。大图:使用reduce函数。

var data = ...
var filtered_data = crossfilter(data);
var tags = filtered_data.dimension(function(d) {return d.tags});

tags.groupAll().reduce(reduceAdd, reduceRemove, reduceInitial).value()

注意我是如何使用的全部分组()代替group()b/c 我们希望我们的reduce 函数(定义如下)在一组而不是3 组上运行。

现在,reduce 函数应该如下所示:

/*
 v is the row in the dataset

 p is {} for the first execution (passed from reduceInitial). 
 For every subsequent execution it is the value returned from reduceAdd of the prev row
*/
function reduceAdd(p, v) {
  v.tags.forEach (function(val, idx) {
     p[val] = (p[val] || 0) + 1; //increment counts
  });
  return p;
}

function reduceRemove(p, v) {
   //omitted. not useful for demonstration
}

function reduceInitial() {
  /* this is how our reduce function is seeded. similar to how inject or fold 
   works in functional languages. this map will contain the final counts 
   by the time we are done reducing our entire data set.*/
  return {};  
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

交叉过滤查询 的相关文章

  • Javascript 将对象推送为克隆

    我将 d3 用于交互式网络应用程序 我需要绑定的数据在交互过程中发生变化 并且由 JSON 变量中的一些选定对象组成 为此 我在 JSON 变量上使用了映射 并进行了一些查询来选择适当的对象 对象被推送到列表中 并且该列表被绑定为新数据 我
  • 如何精确缩放已翻译的d3地图

    我有一张已翻译的地图 以使其正确适合画布 我正在尝试实现一种缩放它的方法 它确实有效 但是当您放大时它会远离中心 而不是以鼠标甚至画布为中心 这是我的代码 function map data total views var xy d3 ge
  • Dimple.js - 将数据标签添加到条形图的每个条形

    我使用的是dimple js 它基于d3 js 是否可以向本示例中提到的条形图的每个条形添加数据标签http dimplejs org examples viewer html id bars vertical http dimplejs
  • 快速响应的交互式图表/图形:SVG、Canvas 还是其他?

    我正在尝试选择正确的技术来更新一个项目 该项目基本上在可缩放 可平移的图表中渲染数千个点 当前使用 Protovis 的实现性能不佳 在这里查看 http www planethunters org classify http www pl
  • NVD3 - 配置轴上的刻度

    我有一个 nvd3 折线图 它显示时间序列 但无法在 x 轴右侧获取刻度 对于较长的时间跨度 它会按预期工作 但对于较短的时间跨度 此处 12 31 05 至 01 01 06 多个刻度显示相同的日期 请看一下JSFiddle 上此图表的代
  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • 如何在D3节点中放置图像?

    到目前为止 我已经创建了这些 D3 节点 用于创建可折叠的层次树 到目前为止 这些节点的颜色为 AA1C1C 深红色 以表明如果您单击它们 它们将扩展到更多节点 我想要做的是在节点中使用图像中的位置 这对于所有用户来说都是一个加号 以知道它
  • 如何在 d3.js 中填充 svg 圆圈内的图像

    这是我在 svg 中填充圆圈的代码 var svgContainer d3 select body append svg attr width 1000 attr height 1000 var circles svgContainer s
  • 调整发散堆积条形图以使用通用更新模式

    我一直在使用可用的堆积条形图示例here https bl ocks org mbostock b5935342c6d21928111928401e2c8608使用以下代码 var data month Q1 2016 apples 384
  • 可以在 d3.js 中使用具有固定圆圈大小的圆圈包布局吗?

    此圆形包布局示例 http bl ocks org 4063269 http bl ocks org 4063269 非常适合我正在从事的项目 但是它会调整所有圆圈相对于彼此的大小 有没有一种简单的方法来指定每个圆的固定半径 我已经搜索了源
  • 如何使用 d3.js 沿 GeoJSON 路径对对象进行动画处理?

    我正在使用 D3 js 从 GeoJSON 文件生成并渲染路径 效果很好 但现在我想沿着该路径为对象设置动画 我知道如何使用 D3 和标准 SVG 来做到这一点 创建过渡并设置其持续时间 对于过渡的每一帧 使用 Complete 查找沿路径
  • 使用 Meteor 中的 D3 访问 csv 文件

    我已经使用 D3 成功渲染了一个 HTML 表格 显示了 csv 文件中的数据 但是当我将相同的代码移入 Meteor 项目时 我遇到了问题 传递到 d3 csv 回调中的数据对象一次拾取 HTML 文件 1 行 而不是 csv 数据 仅当
  • 显示具有多个父代的 D3 树

    我目前有this http bl ocks org mbostock 4339083图已实现 我希望在描述具有多个父节点的子节点时保持结构和可折叠性 有没有办法做到这一点 我研究了力图 但我也想保留一组层次结构 这意味着 1 级的父级可以有
  • crossfilter - 计算具有属性的所有记录的百分比

    这是我的问题 我正在使用 python Flask 服务器从 mongo db 获取 json 数据 并在其中指定要导入的字段 此数据采用 json 格式 并且仅像这样获取 一旦通过 graphs js 中的 crossfilter 是否可
  • 如何在 React 组件中使用 CDN

    我正在尝试使用基于 D3 构建的库 称为 Greuler 来动态渲染图形 它的 npm 包似乎已损坏 当我改用 Greuler CDN 时 index html 中的测试图终于起作用了 但是 我正在开发一个 React 应用程序 并且我希望
  • 改进 D3 序列旭日示例

    This D3示例作为我的出发点 http bl ocks org kerryrodden 7090426 http bl ocks org kerryrodden 7090426 我想更改提供图表的数据 并且我做了以下新示例 http j
  • D3 版本 5,如何将 Promise 链接到图表构建

    我想将 JS Promise 链接到 D3 v5 图表构建 并想在动画之后解决它 但它不起作用 下面的代码还在注释中显示了不同类型的尝试 它们都不起作用 选项 3 导致异常 未捕获 承诺中 类型错误 无法读取未定义的属性 on 选项 2 和
  • 为 d3.js 中的多个元素生成 ClipPaths

    我正在尝试创建部分填充的圆圈 就像最终的 纽约时报 政治大会可视化中的圆圈一样 http www nytimes com interactive 2012 09 06 us politics convention word counts h
  • 更改 c3.js 散点图中气泡的大小

    我有一个散点图 我想改变点的大小 使它们看起来像气泡 有人可以告诉我如何改变气泡的大小吗 这是我的代码 var chart c3 generate data xs IBM ibm x Microsoft microsoft x column
  • D3js多个父节点

    我正在尝试 d3 和树布局 我认为是否可以创建具有两个根的树 我知道树只有一个根是规则 但也许有人有一些例子 这是一个Fiddle http jsfiddle net 2ob0drfk 1 显示我认为您正在寻找的内容 重要的代码就在底部附近

随机推荐

  • Play Framework 2.1.1 部署问题

    因此 我正在尝试部署非常简单的 Play Framework 2 1 1 应用程序 但每当我通过端口命令行传递标志并应用数据库演变时 它们都会被忽略 例如 sudo play start Dhttp port 80 DapplyEvolut
  • 如何在 Maven Netbeans 项目中包含 Maven 存储库中不存在的 jar

    我正在使用 Netbeans 构建 Maven 项目 并将 JTidy java 库作为依赖项 事实证明 JTidy 不存在于任何 Maven 存储库中 因此我不能只为其添加 正常 依赖项条目 处理 Maven 项目中库的依赖关系 在存储库
  • 为什么 type(classInstance) 返回“instance”?

    我有一个方法 它接受可以是多种类型的参数 并且必须根据类型做一件事或另一件事 但是如果我检查所述参数的类型 我不会得到 真实 类型 我总是得到
  • C# 中的标准 Blowfish

    我的 C 程序使用的是标准河豚 我的 C 程序使用的是 Blowfish 加密算法here http www hotpixel net software html 两个应用程序 TCP 客户端 执行相同的操作 接收数据包 对其进行加密 然后
  • jquery 改变 P 的 insidehtml 不起作用

    我有一个我认为是使用 jQuery 的简单选择来更改段落上的一些文本 它以传统方式完美运行 即 document getElementById message text innerHTML hello 但对于 jQuery 则不然 我已经检
  • 击败或满足 OS X memset(和 memset_pattern4)

    我的问题是基于另一个SO问题 为什么 mm stream ps 会产生 L1 LL 缓存未命中 https stackoverflow com questions 9068246 why does mm stream ps produce
  • 核心数据搜索优化

    我正在我的一个基于核心数据的应用程序中开发搜索功能 并且我正在尝试收集每个人有关搜索优化的技巧 以尽可能快地实现它 搜索需要足够快 以便能够为包含 20 000 多个对象的数据库提供近乎即时的结果 到目前为止我所做的 就优化而言 实现了 W
  • 在 AJAX 调用中读取 POST 数据

    我有一些 Session 值 我通过 Ajax 调用不断更改它们 我似乎无法处理 POST 数据来处理它并设置值 我在这里传递给它的是一个字符串数组 如下面的代码所示 这是 AJAX 调用的地方 var sessionValues str
  • RIA 服务出现奇怪的错误“代码生成器遇到致命异常”

    这是我第二次在 WCF RIA 服务中遇到这个非常奇怪的问题 可悲的是 我必须两次解决这个问题 再次经历不同的困难 尽管我已经给自己留了一张纸条指出解决方案 P 无论如何 非常有用 的错误消息如下 MSBuild Microsoft Sil
  • 将 ListRow 添加到受保护工作表的表中

    当工作表受到保护时 我想将数据添加到每个工作表中每个表的最后一行 我在 ThisWorkbook 中有这段代码来保护工作表 Private Sub Workbook Open Dim wSheet As Worksheet For Each
  • 鼻子工具和 pylint

    使用nose tools并保持pylint快乐的正确方法是什么 下面的代码 This is a test import nose tools import nose tools trivial nose tools assert equal
  • 仅打印那些总和为 10 的 3 位数组 - C 程序

    Output 1 2 3 4 1 2 7 1 3 6 1 4 5 1 9 2 3 5 2 8 3 7 4 6 10 预期输出 1 2 7 1 3 6 1 4 5 2 3 5 我只想要那些总和为 10 并且只有 3 位数字的数字对 即总和为
  • Markdown 内部链接在 BitBucket README.md 中不起作用

    我在 BitBucket 项目中有一个 README md 文件 内容类似于 Table of Contents Document Organization document organization Document Organizati
  • 导入模块的标准方式

    我目前正在尝试在代码中使用 c 模块 该代码应该在 Windows MSVC 和 Linux Clang 和 或 GCC 上编译 我目前正在 Visual Studio 中进行开发 并使用 标准一致性模式 permissive 使我的代码尽
  • 将 VlcManager 与最新版本的 Vlc.DotNet 结合使用

    我正在尝试将 Vlc DotNet 库用于我的 WinForms C 应用程序 我不想使用 Vlc DotNet 库的 Core Interops 中的 VlcManager 但没有最新的文档 在早期版本中 您可以创建 VlcControl
  • CocoaPods podspec lint 失败 - 找不到文件

    我正在尝试分发我的 Pod 但我在验证时遇到问题 当我尝试检查我的 podspec 时 我得到 ERROR iOS xcodebuild path to my source file m 14 9 fatal error KeyValueO
  • Python VS代码无法与IPython内核连接

    我创建了一个新的虚拟环境并尝试连接 VS 代码 当我在 VS code 中打开包含文件和虚拟环境的文件夹时 在左下角我可以看到选择的 python 解释器 如下图所示 但是 当我运行该程序时 它显示正在连接到 IPython Kernel
  • 从 Java 中的基类访问子类字段

    我有一个名为的基类Geometry其中存在一个子类Sphere public class Geometry String shape name String material public Geometry System out print
  • setTimeout返回什么?

    我很好奇 setTimeout 返回什么 所以我做了一个快速测试 var thing setTimeout function 1 让我惊讶的是它给了我一个数字 1351每次都是不同的 那么它返回的真的只是一个数字吗 那么我实际上也可以这样做
  • 交叉过滤查询

    是否可以过滤以数组作为值的交叉过滤数据集 例如 假设我有以下数据集 var data bookname the joy of clojure authors Michael Fogus Chris Houser tags clojure l