如何使用D3同时按多个键进行分组?

2023-12-12

这可行,但我想知道是否有比创建字符串更好的方法a and b然后将其拆分:

const data = [
    { a: 10, b: 20, c: 30, d: 40 },
    { a: 10, b: 20, c: 31, d: 41 },
    { a: 12, b: 22, c: 32, d: 42 }
];

d3.rollups(
    data,
    x => ({
      c: x.map(d => d.c),
      d: x.map(d => d.d)
    }),
    d => `${d.a} ${d.b}`
  )
  .map(([key, values]) => {
    const [a, b] = key.split(' ');
    return {a, b, ...values};
  });

// OUTPUT
// [
//   {a: "10", b: "20", c: [30, 31], d: [40, 41]},
//   {a: "12", b: "22", c: [32], d: [42]}
// ]

随着 d3 v7 的发布,现在有一种更好的方法可以使用新的d3.flatRollup.

const data = [
    { a: 10, b: 20, c: 30, d: 40 },
    { a: 10, b: 20, c: 31, d: 41 },
    { a: 12, b: 22, c: 32, d: 42 }
];

const result = d3.flatRollup(
    data,
    x => ({
      c: x.map(d => d.c),
      d: x.map(d => d.d)
    }),
    d => d.a,
    d => d.b
  );
console.log(result);

const flattened = result.map(([a, b, values]) => ({a, b, ...values}));
console.log(flattened);
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/d3-array.min.js"></script>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用D3同时按多个键进行分组? 的相关文章

  • 无法在地图循环中访问 Axios 调用的值

    我有一个 javascript 对象 其 ID 对应于一组画廊 我使用地图循环遍历它 在每个循环中 我都会进行 axios 调用来获取当前 id 的图库 最后 我需要一个包含所有画廊内容的数组 问题是地图循环完成后我无法访问数据 当我 co
  • zone.js:140未捕获类型错误:无法读取属性“删除”

    我是 kendo ui 的新手 我在小提琴中开发了原型 删除确认窗口在那里工作正常 但是当我集成到我的代码库中时 我收到错误 Cannot read property remove at the line pai to delete rem
  • Flex、AngularJS + Masonry、akoenig/angular-deckgrid 等 [重复]

    这个问题在这里已经有答案了 我一直在发送此电子邮件 我即将发布一个用于 Web 应用程序安全的应用程序 它需要使用像 Masonry 这样的网格 我已经尝试过所有的 每一个角度模块 指令和不同的方法 包括基于 CSS 的技术 纯 Vanil
  • 绑定 popstate 事件不起作用

    我尝试在浏览器的控制台中输入以下代码 window onpopstate function alert 1 然后单击后退按钮 没有显示任何警报 难道我做错了什么 或者是否不允许将 popstate 事件绑定到控制台的页面 使用 Chrome
  • 在 ajax 请求上启用 jQuery contextMenu 项

    我正在尝试更新上下文菜单 http medialize github com jQuery contextMenu docs htmlitem 如果 ajax 请求改变了我的 div 内容 这就是我的意思 我有一个这样的 div div c
  • 图表.js.如何更改“标签”数组的字体样式?

    我从 Chart JS 库中获取了一个图表 截屏 https i stack imgur com DnuRq png var ctx document getElementById myChart var data labels HTML
  • querySelector 搜索直接子级[重复]

    这个问题在这里已经有答案了 我有一些类似 jquery 的函数 function elem return gt someselector elem 问题是我怎样才能做同样的事情querySelector 问题是 gt 选择器中querySe
  • 鼠标移动时画布拖动

    我正在尝试构建一个可以使用鼠标移动拖动的画布 我做了一些我无法理解的错误 因为一开始似乎有效 然后出现了一个增量错误 使画布移动得太快 考虑以下代码 window onload function var canvas document ge
  • 仅从功能区打开一个对话框

    我有一个带有登录按钮的功能区 可打开登录对话框 我想将对话框的数量限制为一个 我正在使用函数 displayDialogAsync startAddress options callback https learn microsoft co
  • 为什么这个递归函数返回未定义?

    我正在尝试编写一个使用递归组合两个字符串的函数 我的代码如下 但我不知道为什么该函数返回未定义 特别是当我在基本情况下使用 console log 时 它不会打印未定义而是打印正确的值 var str3 function merge str
  • NodeJS - 将相对路径转换为绝对路径

    In my 文件系统我的工作目录在这里 C temp a b c d 在 b bb 下有文件 tmp txt C temp a b bb tmp txt 如果我想从工作目录转到该文件 我将使用以下路径 bb tmp txt 如果该文件不存在
  • iPhone 上的锁定方向 UIWebView

    有没有办法锁定 UIWebView 的方向 使用 Obj C JS 还是 Html 我不想有按钮或任何东西 我只想在应用程序打开时将其锁定为纵向 好像这个堆栈溢出帖子 https stackoverflow com questions 43
  • 如何在数据表角度中基于 JSON 动态填充表值?

    我在用着Angular 数据表 https l lin github io angular datatables 我需要能够根据返回的数据动态创建表 换句话说 我不想指定列标题 Example json数据 id 2 city Baltim
  • 当 Chrome 中嵌套滚动中的数据更改时防止页面滚动

    我在页面中有一个固定大小的元素 带有 溢出 滚动 其内容经常更改 我预计该元素内部发生的更改会影响该元素的滚动 但不会影响页面滚动 但是当这个元素位于页面顶部时 页面本身开始滚动 我怎样才能防止这种情况发生 要重现此行为 我在 chrome
  • 为什么 console.log() polyfill 不使用 Function.apply()?

    我一直在看一些流行的console log 包装 填充 保罗 爱尔兰的 http paulirish com 2009 log a lightweight wrapper for consolelog 本阿尔曼的 http benalman
  • 如何捕获文本区域上的 Enter 按键而不是 Shift+Enter? [复制]

    这个问题在这里已经有答案了 I m doing it for texarea A function should be called when the user press Enter but nothing should be done
  • Firebase 身份验证和实时应用程序数据库如何保护自身安全?

    从一般开发的角度来看 我很好奇如何保护在线资源的访问 我们使用以下 Firebase 配置参数初始化 Web 应用程序 apikey authdomain projectid databaseurl messagesenderid 服务器如
  • 测试 jQueryUI 是否已加载

    我正在尝试调试网站 并且我认为 jQueryUI 可能未正确加载 如何测试 jQueryUI 是否已加载 if jQuery ui UI loaded OR if typeof jQuery ui undefined UI loaded 应
  • 使用严格模式编译指示时如何声明全局变量

    使用自调用函数来包装严格模式兼容代码 通常称为严格模式编译指示 被认为是一种很好的做法 function use strict Strict code here 我的问题是在这种情况下如何声明全局变量 我今天知道的三种替代方案 替代方案 1
  • 在引导程序中以编程方式更改选项卡窗格选项卡

    我使用的选项卡窗格定义为 ul class nav nav tabs li a href personal Personal Information a li li class active a href contact Contact a

随机推荐

  • RDB2RDF 工具的优缺点是什么? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我需要知道 RDB2RDF 工具之间的区别 谁能告诉我 RDB2RDF 工具的优点和缺点是什么 特别是对于以下 Virtuoso Ultrawrap Ontop Morph Xs
  • IOS Storyboards:恢复 ID 就像 Storyboard ID 一样?

    我正在使用 Steinberg 的 iBook IOS SToryboards 来过渡到使用故事板 在第 30 页 作者的教程展示了如何将身份检查器中的 故事板 ID 设置为 redScene 值 在书中的图形中 这显示为 识别 下的第一个
  • iPad 版 CSS 中媒体查询的使用

    假设我有一个现有的桌面 CSS desktop css 我想包含 iPad Safari css 在desktop css中 我们可以在最后进行条件导入吗 media only screen and device width 768px i
  • 如何更新单个 firebase firestore 文档

    身份验证后 我尝试在 users 查找用户文档 然后我想使用身份验证对象中的数据以及一些自定义用户属性来更新文档 但我收到更新方法不存在的错误 有没有办法更新单个文档 所有 firestore 文档示例都假设您拥有实际的文档 ID 并且它们
  • HTTP请求swift提供参数

    对于我的大学的一个简单的 iOS swift 应用程序 我尝试登录他们的其中一个页面以检索我卡上当前的金额 但是 在执行 http 请求时 我无法获取所需的数据 这是我的代码 let url NSURL string https campu
  • 如何获取 Azure AD OAuth 登录的登录用户配置文件?

    继从Azure AD v2 登录的 JavaScript OAuth2 流不提供 access token 我试图找出要使用的最佳端点 以获取登录用户的详细信息 例如 显示名称 电子邮件等 然而 我注意到有两个我可以使用的潜在端点 http
  • 使用node.js postgresql 模块的正确方法是什么?

    我正在 Heroku 上编写一个 node js 应用程序并使用编程模块 我无法找出为查询数据库所需的每个请求获取客户端对象的 正确 方法 该文档使用这样的代码 pg connect conString function err clien
  • 将 SQL 表转换为 java bean 类 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我正在使用大量 SQL 表的 Web 应用程序 我需要为每个表创建一个 java bean 类 我正在寻找一个可以将 SQL 表转换为 java b
  • MVC3 自定义错误页面在开发中工作,而不是在服务器上工作

    我正在使用此中详细介绍的解决方案那么问题 我之前在其他网站上使用过它 效果很好 而且它也适用于我的开发盒 但是 当我发布到我们的 Windows VPS 时 错误会返回标准 IIS 错误页面 我以前从未管理过网络服务器 并且我不确定需要检查
  • 加载大量用户控件时出现性能问题

    我的应用程序正在将一堆相同的用户控件加载到ScrollPanel 问题是 这非常慢 分析器显示瓶颈在于方法Application LoadComponent 它是从我的用户控件的构造函数内部调用的 该方法的文档说该方法加载XAML file
  • 无法区分 Sympy 中的复杂变量

    我知道这个标题听起来像是一个重复的问题Sympy 无法区分变量 但我相当确定它是完全不同的 如果我弄错了 我提前道歉 我正在尝试使用哈密顿力学求解双摆 但 Sympy 在获取其中一种导数时遇到困难 代码如下 但更容易阅读iPython No
  • 刷新PNG文件而不刷新整个页面的方法

    使用 imagestring 创建验证码 imagestring image 5 5 30 text text color imagepng image captcha image png imagepng image captcha im
  • android:除了使用extra()方法之外,还可以发送和获取字符串

    我只是想知道除了使用intent putExtra 和getIntent getExtra 之外 还可以使用什么方法将字符串从一个活动发送到另一个活动 因为我的项目在使用 putExtra 时得到意外结果 只想另一个发送字符串 有什么建议和
  • C# 中类、函数、变量等的正确命名表示法是什么?

    我是一名网络开发人员 没有正式的计算背景 我已经编写代码好几年了 但每次我需要创建一个新的类 函数 变量时 我都会花大约两分钟来决定一个名称然后如何输入它 例如 如果我编写一个函数来对一堆数字求和 我应该称呼它吗 Sum GetSum ge
  • 从 Java 代码中查找主类名称的可移植方法

    有没有办法从 JVM 中运行的任意代码中找到用于启动当前 JVM 的主类的名称 任意 我的意思是代码不一定在主线程中运行 或者可能在调用 main 之前在主线程中运行 例如 用户提供的 java system classloader 中的代
  • 如何以编程方式修复(不仅仅是压缩)Access .mdb 文件?

    我有一个损坏的数据库 如果我在 MS Access 中打开它 MS Access 会提供修复它 并且它会成功 我怎样才能用代码做到这一点 在未安装 MS Access 的计算机上 我通过尝试知道 JRO JetEngine CompactD
  • 将 CheckBoxList TemplateControl 替换为自定义 UserControl?

    我正在尝试为标准 CheckBoxList 控件创建更详细的项目模板 它公开了一个名为 TemplateControl 的 ITemplate 属性 但我无法找到有关如何实际使用它的简单资源 这是我到目前为止的代码 Protected Ov
  • D3.js 流图示例 - 生成正确的面积函数值

    我是 d3js 新手 并尝试从这里调整流图示例http bl ocks org mbostock 4060954 使用我自己的数据来跟踪来自不同地方 在线 留言簿 博物馆 的艺术展览参观者 我已经取得了一些进展 我认为我的数据格式正确 但我
  • 如何开始优化我的 Java 代码? - CPU 处于 100%

    我已经编写了一个应用程序 但由于某种原因它一直保持在 100 的峰值 我对一些类运行了概要文件 r 报告显示 isReset 和 isRunning 似乎被调用了很多次 您发现任何问题请告诉我 谢谢 类 1 是唯一使用 isReset 代码
  • 如何使用D3同时按多个键进行分组?

    这可行 但我想知道是否有比创建字符串更好的方法a and b然后将其拆分 const data a 10 b 20 c 30 d 40 a 10 b 20 c 31 d 41 a 12 b 22 c 32 d 42 d3 rollups d