D3.js 使用嵌套数组从 tsv 迁移到 json

2023-12-29

我正在通过遵循教程并尝试阅读可用的示例来学习 d3.js(感谢迈克)。

在这个例子中:http://bl.ocks.org/mbostock/3884955 http://bl.ocks.org/mbostock/3884955,我无法理解如何从 tsv 移动到嵌套 json。我有 json,如果数据没有嵌套,它就可以工作(见底部)。我修改了代码:

   d3.tsv( "d3-multi-series-line-chart-data.tsv", function( error, data ) {
          color.domain( d3.keys( data[0] ).filter( function( key ) {
                return key !== "date";
          } 
));
...

to:

d3.json( "d3-multi-series-line-chart-data.json", function( error, data ) {
           color.domain( d3.keys( data[0] ).filter( function( key ) {
                return key !== "date";
           } 
));
...

[编辑] 我有直觉认为所需的修改位于以下代码中:

var cities = color.domain().map(function(name) {
  return {
    name: name,
    values: data.map(function(d) {
      return {date: d.date, temperature: +d[name]};
    })
  };
});

但我没能看到如何在修改后的json上访问每个城市的温度。 [/编辑]

我尝试过调用关键温度,但无济于事。我在这里和文档中查看了一些示例,但我因不理解而感到愚蠢。因此,如果有人能好心地向我展示,我将不胜感激。

目前json结构如下:

[
   {
      "date":"20111001",
      "New York":"63.4",
      "San Francisco":"62.7",
      "Austin":"72.2"
   },
   {
      "date":"20111002",
      "New York":"58.0",
      "San Francisco":"59.9",
      "Austin":"67.7"
   },
   {
      "date":"20111003",
      "New York":"53.3",
      "San Francisco":"59.1",
      "Austin":"69.4"
   },
   ...
]

我想要的是以下内容:

[
   {
      "date":"20111001",
      "temperature":{
         "New York":"63.4",
         "San Francisco":"62.7",
         "Austin":"72.2"
      }
   },
   {
      "date":"20111002",
      "temperature":{
         "New York":"58.0",
         "San Francisco":"59.9",
         "Austin":"67.7"
      }
   },
   {
      "date":"20111003",
      "temperature":{
         "New York":"53.3",
         "San Francisco":"59.1",
         "Austin":"69.4"
      }
   },
   ...
 ]

首先,最简单的事情就是将嵌套结构转换为示例可以使用的结构。代码看起来像这样。

var flat = [];
json.forEach(function(d) {
  d.temperature.forEach(function(e) {
    e.date = d.date;
    flat.push(e);
  });
});

一般而言,我建议您将数字作为 JSON 中的数字而不是字符串(即不带引号)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

D3.js 使用嵌套数组从 tsv 迁移到 json 的相关文章

  • Angular service-worker范围在安装过程中遇到错误

    我正在尝试使用 Angular Service Worker 但在尝试使用它时出现错误 这些是我的版本 Angular CLI 15 2 0 Node 16 18 1 Package Manager npm 8 19 2 OS linux
  • JavaScript 对输入的循环创建一个对象数组

    我正在尝试循环 div 中的输入元素 以创建对象数组 div div
  • WebPack 源映射令人困惑(重复文件)

    我决定在我今天正在启动的一个新项目上尝试 WebPack 并且我从源映射中得到了非常奇怪的行为 我在文档中找不到任何相关信息 在浏览 StackOverflow 时也找不到其他人遇到此问题 我目前正在查看由以下公司制作的 HelloWorl
  • 当模态打开时,如何将焦点设置在模态内的第一个 TouchableHighlight 组件(或另一个组件,例如由 ref 给出)上?

    当模式打开时 如何将焦点设置到模式内的第一个 或任何给定的 TouchableHighlight 组件 我正在使用方向键 键盘 电视遥控器 让我们使用react native文档模式示例的片段
  • AngularJS 和 Apiary.IO - 无法读取任何响应标头?

    我使用 Apiary io 模拟我的 API 但不知怎的 我无法使用 angularJS 从响应对象中读取任何标头 我确信我至少通过检查 firebug 正确设置了 Content Type application json Angular
  • 如何使用 CSS 或 javascript 创建圆角

    复制 使用 CSS 创建圆角的最佳方法是什么 https stackoverflow com questions 7089 what is the best way to create rounded corners using css 7
  • 传单圆圈绘制/编辑问题

    我第一次制作传单 并面临绘制圆圈和编辑 更改圆圈位置 的问题 我面临的问题是 编辑 移动 圆从一个位置到另一位置会改变其半径 Note 请尝试在给定的小提琴中在地图顶部创建圆圈 然后通过单击编辑按钮将其移动到底部 如果我在地图的顶部创建圆圈
  • Bootstrap shown.bs.tab 事件不起作用

    我正在使用灵活的模板 http the8guild com themes html flexy v1 7 stylesPage html 使用引导程序 并且我无法让选项卡上的 shown bs tab 事件正常工作 我已经成功让它发挥作用J
  • 角度引导手风琴数据绑定问题

    我有 2 个相同型号的下拉菜单 一个位于手风琴内部 另一个位于外部 外部下拉菜单在 2 路数据绑定方面工作良好 但手风琴内部的下拉菜单似乎只有 1 路绑定 换句话说 在 UI 中选择并不会设置模型值 我找到了一个建议here https s
  • 如何将多个文件上传到Firebase?

    有没有办法将多个文件上传到 Firebase 存储 它可以在一次尝试内上传单个文件 如下所示 fileButton addEventListener change function e Get file var file e target
  • Node.js 循环发送 http 请求

    我实际上遇到了使用 node js 执行的 javascript 代码的问题 我需要循环发送http请求到远程服务器 我在代码中设置了www google ca 这是我的代码 var http require http var option
  • JavaScript - 类根据条件扩展

    事情是这样的 我有一个名为 A 的主课 我希望这个班级能够扩展 B 级 class A extends B 但事实上 我希望 B 类在特定条件下扩展 C D 或 E class B extends B1 or class B extends
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • jqPlot DateAxis tickInterval 不起作用

    我试图每月绘制一个包含单个数据点的图表 我会在每个月的第一天将其作为一个点发送到 jqPlot jqplot actualChart 2011 10 01 0 296 2011 11 01 0 682 title programSelect
  • 将命令行参数传递给 emscripten 生成的应用程序

    当使用 Emscripten 编译 C 程序时 会生成一个 HTML 页面来显示程序的结果 我想知道如何将命令行参数传递给应用程序 例如 对于原始的 C 程序 它是 bfs 32 1 我能够通过向生成的 html 文件添加一行来传递命令行参
  • 使用 Lodash 循环 JavaScript 对象中的属性

    是否可以循环访问 JavaScript 对象中的属性 例如 我有一个 JavaScript 对象定义如下 myObject options property1 value 1 property2 value 2 属性将动态添加到该对象 有没
  • 谷歌浏览器不显示一个网站的alert()弹出窗口

    我正在开发一个 javascript 循环 该循环会随着循环的进行而提醒每个键值 为了加快速度 我选中了 阻止此页面创建其他对话框 框 通常这只会抑制一个例程的弹出窗口 但它们还没有回来 在 Google Chrome 中 alert 消息
  • 如何设置 .eslintrc 来识别“require”?

    我是新来的ESLint http eslint org 并且我已经成功地将 ESLint 与IntelliJ https www jetbrains com idea 开箱即用 我的 ESLint 集成无法识别node 但对文档的基本审查表
  • 为什么 JavaScript 默认导出不可用?

    为什么默认导出不像命名导出那样实时 lib js export let counter 0 export function incCounter counter export default counter main1 js import
  • 如何连接/组合两个数组以连接成一个数组?

    我正在尝试将 JavaScript 中的 2 个数组合并为一个 var lines new Array a b c lines new Array d e f 这是一个简单的例子 我希望能够将它们组合起来 这样当读取第二行时 数组中的第四个

随机推荐

  • 在 Objective-C 中比较字符串和数组

    这是一个非常基本的问题 我相信您能够很快回答 请不要嘲笑我的无知 我有一个字符串 我想将其与字符串数组进行比较 仅当字符串不是数组的一部分时 我才想执行操作 我尝试了以下代码 但不起作用 我确实明白为什么 但我就是想不出正确的方法 请帮助我
  • 如何将 ILMerge 集成到 Visual Studio 构建过程中以合并程序集?

    我想将 VB NET 控制台应用程序项目引用的一个 NET DLL 程序集和一个 C 类库项目合并到一个命令行控制台可执行文件中 我可以从命令行使用 ILMerge 来完成此操作 但我想将参考程序集和项目的这种合并集成到 Visual St
  • form_for 的路由范围问题(部分)

    尝试路由 scope shortcut do resources text elems end 使用带有表单部分的基本脚手架 form html erb 问题是 当我打电话时edit动作 表单 html 显示为
  • UserDefaults 不使用 Swift 保存

    我正在尝试使用 UserDefaults 来持久保存布尔值 这是我的代码 public static var isOffline UserDefaults standard bool forKey isOffline didSet prin
  • 在 JExcelApi 中制作新颜色

    我正在使用 JExcelApi 生成 XLS 文件 从jxl format 颜色 http jexcelapi sourceforge net resources javadocs 2 6 10 docs jxl format Colour
  • 拥有许多小型 Azure 存储 Blob 容器(每个容器都包含一些 Blob)更好,还是拥有一个包含大量 Blob 的大型容器更好?

    所以场景如下 我有一个 Web 服务的多个实例 用于将 blob 数据写入 Azure 存储 我需要能够根据收到的时间将 blob 分组到容器 或虚拟目录 中 偶尔 最坏的情况是每天 旧的 blob 会被处理然后删除 我有两个选择 Opti
  • 带延迟的打字稿循环

    我正在尝试用 Typescript 创建一个节拍器 我有这个 JavaScript 代码 function theLoop i setTimeout function metronome play if i theLoop i 3000 i
  • 是否可以使用 MSTest 从 c++ dll 测试“内部”类?

    我们目前正在尝试向我们的 C 应用程序添加单元测试 该应用程序由 30 个项目组成 生成 29 个 dll 和 1 个 exe 我们使用 MSTest 来运行我们的单元测试 因为它已经包含在 Visual Studio 2010 中 它对于
  • 巩固党规

    一个简单的例子 gt library partykit gt partykit list rules party ctree Petal Length data iris 2 Petal Width lt 0 6
  • 关于创建表作为选择 (CTAS)

    当我们这样做时 create table big2 as select from big1 索引和约束是否也复制到新表中 仅复制 NOT NULL 约束 看FAQ http www orafaq com wiki CTAS 你可以做CREA
  • SQL 中的离散导数

    我的表格中有传感器数据 格式如下 Time Value 10 100 20 200 36 330 46 440 我想提取每个时间段的值变化 理想情况下 我想得到 Starttime Endtime Change 10 20 100 20 3
  • Django 自定义用户字段与 AbstractBaseUser 冲突

    我正在从现有数据库构建 Django 项目 该数据库正在被其他系统使用 因此我无法更改其架构 这是我当前的自定义用户模型 class Users AbstractBaseUser id user models IntegerField pr
  • 添加到 iPhone 主屏幕时,Web 应用程序感觉响应速度较慢

    当添加到 iPhone 上的主屏幕时 这个 Angular 2 应用程序的响应速度比在 Safari 中运行时的响应速度要慢 我通过将其添加到 index html 使其具有 Web 应用程序功能 如果你有几分钟时间 在 Github 页面
  • 在 Xcode 中,视图或窗口如何知道自身外部的 mouseDown?

    我想设计一个有点像弹出窗口的面板 当鼠标在它外面按下时 它可能会关闭或隐藏自己 但我不知道如何实现这一目标 我所知道的是一个视图可以处理 mouseDown mouseUp等等 但是当鼠标在其他地方按下时呢 我不知道如何捕捉这个事件 进一步
  • 如何使用 16GB 内存创建 Windows 虚拟机

    我对云服务完全陌生 使用 Windows Azure 我需要一个 Web 服务器和一个数据库服务器 每个服务器都有 16GB RAM 然而 超大的 Windows 虚拟机只有 14GB RAM 我如何为每台服务器添加 2GB RAM 或者我
  • rabbitmq 抛出 AmqpException: 找不到类 [B

    当我向 RabbitMQ 发送消息时 它会抛出 AmqpException for 循环 org springframework amqp rabbit listener exception ListenerExecutionFailedE
  • 通过 Git 将 Master 上未提交的更改放入新分支

    当我在分支时 如何将未提交的更改放入分支测试master 您还可以创建一个新分支并通过执行以下操作切换到它 git checkout b new branch git add 我一直使用这个 因为我总是忘记在开始编辑代码之前启动一个新分支
  • Alphavantage 和纳斯达克指数停止运行

    这个针对纳斯达克综合指数的 API 调用曾经有效 现在它只返回一个空的 JSON 没有错误消息 https www alphavantage co query function TIME SERIES MONTHLY symbol IXIC
  • webkit translateX 动画正在回滚到初始位置

    我正在尝试为移动 webkit 制作一个图片库 实际上足够快的唯一方法是使用硬件加速的translateX 我的问题是 div 在动画结束时收回其初始位置 我在左侧按钮上添加了 SlideGalLeft 类 到动画 div 您可以在此处的回
  • D3.js 使用嵌套数组从 tsv 迁移到 json

    我正在通过遵循教程并尝试阅读可用的示例来学习 d3 js 感谢迈克 在这个例子中 http bl ocks org mbostock 3884955 http bl ocks org mbostock 3884955 我无法理解如何从 ts