如何使用 d3.js 对分箱时间序列求和?

2024-01-07

我想要一个简单的图表,例如:

我拥有的数据是具有两个属性的简单交易列表:

  • 时间戳
  • amount

我尝试了 d3.layout.histogram().bins() 但它似乎只支持counting交易。

我一定不是唯一一个在寻找这个的人,不是吗?


好的,IRC 人员帮助我并指出nest,效果很好(这是 CoffeeScript):

nested_data = d3.nest()
  .key((d) -> d3.time.day(d.timestamp))
  .rollup((a) -> d3.sum(a, (d) -> d.amount))
  .entries(incoming_data)  # An array of {timestamp: ..., amount: ...} objects

# Optional
nested_data.map (d) ->
  d.date = new Date(d.key)

这里的技巧是d3.time.day它采用时间戳,并告诉您该时间戳属于哪一天(晚上 12 点)。这个功能和其他类似的功能d3.time.week等..可以很好地对时间序列进行分类。

另一个技巧是nest().rollup()函数,经过分组后key(),对给定的所有事件求和day.

我最不想做的就是在没有交易的日子里插入空值。这是代码的最后一部分:

# Interpolate empty vals
nested_data.sort((a, b) -> d3.descending(a.date, b.date))
ex = d3.extent(nested_data, (d) -> d.date)
each_day = d3.time.days(ex[0], ex[1])

# Build a hashmap with the days we have
data_hash = {}
angular.forEach(data, (d) ->
  data_hash[d.date] = d.values
)

# Build a new array for each day, including those where we didn't have transactions
new_data = []
angular.forEach(each_day, (d) ->
  val = 0
  if data_hash[d]
    val = data_hash[d]
  new_data.push({date: d, values: val})
)

final_data = new_data

希望这对某人有帮助!

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

如何使用 d3.js 对分箱时间序列求和? 的相关文章

  • 如何根据D3中的数据创建元素?

    看着sample https github com mbostock d3 wiki Selections wiki data d3 select body selectAll div data 4 8 15 16 23 42 enter
  • 如何避免多系列折线图d3.js的工具提示重叠

    我已经在多系列折线图上创建了工具提示 如下所示在这里回答 https stackoverflow com questions 34886070 d3 js multiseries line chart with mouseover tool
  • 如何在“object”标签内选择 SVG?

    HTML 页面的内容如下所示 方法如下script js looks var tooltip d3 select body append div style position absolute sty
  • 为什么我的 D3 SVG 图上的轴不会更新?

    I have 简单的 D3 散点图 http www raxacoricofallapatorius com test scattertest html我在显示数据的几个不同属性之间切换 但是虽然我可以更改数据点 并按照我想要的方式进行转换
  • dc js 复合条形图 折线图

    我有一个 dc js 条形图 如下所示这个叉形小提琴 http jsfiddle net 89218vf1 3 此条形图将加载预定义的过滤器 例如本例中的 25 35 现在 我需要显示一个与条形图复合的折线图 突出显示带有高低线的过滤数据
  • D3js 从数组而不是文件中获取数据

    我发现了这个优秀的 d3js 图表here http bl ocks org Caged 6476579 但就我而言 我希望此图表从数组而不是 tsv 文件中获取值 我想让它从表 中获取值 我怎样才能做到这一点 因为它使用一个函数来实现这一
  • 如何使用 d3.format 获取可本地化或可定制的 si 代码

    使用 SI 代码绘制图表正是我们想要的 我们的 y 轴值往往是较大的货币值 例如 10 411 504 201 20 缩写这个 至少在美国语言环境中 这应该转换为 10 4B 但是使用 d3 format 的 s 类型表示 SI 代码 这将
  • d3js 折线图——如何将最后一步延伸到范围末尾?

    很简单 但我无法摆脱这个问题 线是两点 值 之间的链接 从值 A 绘制到值 B 因此 假设 A 的值为 10 B 的值为 20 而 C 缺失 现在从 0 到 10 到 20 的线已经绘制完毕 我想画从 0 到 10 到 20 到 25 的线
  • LeafletJs只显示一个国家

    我使用 Leafletjs 和 D3 来显示地图 我只想在地图上显示英国 Leaflet和D3是否可以只显示英国 这当然是可能的 现在的解决方案取决于您是想使用 D3 绘制英国 还是想从 Tile Server 获取它 在后一种情况下 有一
  • 动画 D3 地球仪 (d3.geo.azimuthal)

    我对 d3 javascript 库有疑问 我想使用方位角 http mbostock github com d3 talk 20111018 azimuthal html地球 我想从地球上的经度和纬度坐标插入点 并使地球动画化 而无需使用
  • 如何在 d3 中使用SimulationLinkDatum和SimulationNodeDatum

    我在使用SimulationLinkDatum 类型时遇到问题 我创建了两个类 Node 和 Link 来实现SimulationNodeDatum 和SimulationLinkDatum 当我尝试使用SimulationLinkDatu
  • 设置 D3 力定向图

    致尊敬的读者 我对 javascript 相当陌生 我也遇到过这个问题 我正在尝试实现这个力导向图的修改版本 http mbostock github com d3 ex force html http mbostock github co
  • D3.以编程方式缩放后使用鼠标滚轮时缩放会跳转

    当我通过单击鼠标缩放到特定位置然后尝试平移或使用鼠标滚轮时 缩放行为会跳跃 看来我的缩放级别正在恢复 就像单击鼠标之前一样 这是我的事件处理程序 function click d var x y k if d centered d var
  • 调整发散堆积条形图以使用通用更新模式

    我一直在使用可用的堆积条形图示例here https bl ocks org mbostock b5935342c6d21928111928401e2c8608使用以下代码 var data month Q1 2016 apples 384
  • d3.js:tickformat - 添加 % 符号而不乘以 100

    我的数据有百分比 例如 10 1 3 2 5 4 d3 format 0f 会给我 10 3 5 d3 format 0 会给我 1010 320 540 乘以 100 如何得到 10 3 5 我不知道在哪里添加 到第一种情况 或者在第二种
  • 为什么 d3.js-lasso 不读取 svg 变量

    https jsfiddle net t52f1rn7 https jsfiddle net t52f1rn7 我正在尝试制作一个线条末端有圆圈的折线图 我想选择两个点并通过单击绘制线条 然后我找到了套索插件 我尝试将它用于相同的目的 选择
  • D3 地图未渲染澳大利亚 topojson 文件

    我有一个 JSON 文件 d3 地图未渲染我创建的澳大利亚 TopoJSON 文件 相同的代码可以很好地渲染美国地图 浏览器检查器中没有错误 并且两个地图在 geojson io 等在线可视化网站上都呈现良好 我已经提供了 JSON 的链接
  • D3:在一个文件夹中加载多个csv数据文件

    我正在使用 d3 创建可视化 我的数据由同一文件夹中的 80 多个 CSV 文件组成 所以我想知道是否有一种简单的方法可以加载所有这些 我在想也许检查文件夹中有多少文件 然后递归加载它们 不过D3好像不行 任何建议 将不胜感激 谢谢 当你想
  • 如何在 React 组件中使用 CDN

    我正在尝试使用基于 D3 构建的库 称为 Greuler 来动态渲染图形 它的 npm 包似乎已损坏 当我改用 Greuler CDN 时 index html 中的测试图终于起作用了 但是 我正在开发一个 React 应用程序 并且我希望
  • 如何部分或仅按百分比沿路径过渡

    我是 d3 的初学者 目前无法使用最新版本 但我使用的是 3 x 版本 我想要实现的应该很简单 但遗憾的是我没有找到有关如何做到这一点的资源 目标是在我的 svg 中显示一条路径 然后我想显示例如一个圆并沿着路径过渡 移动 追踪圆 如果我想

随机推荐

  • Thrift 有 IPC 传输实现吗?或低延迟 SOA 解决方案

    我想将 SOA 引入低延迟系统 而无需 TCP 通信的开销 即使在同一台机器上 Thirft 似乎非常适合我 因为我同时拥有 Java 和 php 进程 是否有针对节俭的 IPC 传输实现 或者任何其他可以在这种情况下提供帮助的好主意 您可
  • “复制捆绑资源”中缺少故事板

    I m using base internationalization to internationalize my app Once I used it my storyboards became red in copy bundle r
  • 将 Plist 数据显示到 UItableview 中

    我有一个包含字典和每个字典的字符串数量的 plist 显示到下面的 url 中 plist 中的项目列表有数千个 我需要将这些 plist 数据显示到 UItableview 中 这个怎么做 My Code void viewWillApp
  • 如何使用纯javascript读取图像文件?

    我是 javascript 新手 目前我的一个项目遇到问题 其中包括从网站根文件夹查看图像 这是我当前的代码 var reader new FileReader reader onload function event var dataUr
  • 如何在 ColdFusion ORM 中深度克隆持久实体?

    我有一个持久实体用作模板 Company Locations Departments Employees 换句话说 一个Company包含许多Locations 其中包含许多Departments 其中包含许多Employees 我有一个C
  • TransactionRequiredException 执行更新/删除查询

    我将 hibernate JPA 与 spring 和 mongodb 结合使用 并在 Glassfish 4 0 上运行我的应用程序 我的服务等级是 Component public class Test PersistenceConte
  • 仅删除单个方法的 csrf 令牌 - Laravel

    我正在使用 paytabs 支付网关 api 在该 api 中 必须给出重定向 url 以便一旦交易完成 页面将自动重定向到您给定的重定向 url 该 url 是 GET url 但由于 api 的响应是 POST 类型 因此我无法使用 g
  • 如何修复“kex_exchange_identification:读取:对等方重置连接”?

    我想复制数据scp在使用 PRIVATE KEY 的 GitLab 管道中 错误是 kex exchange identification read Connection reset by peer Connection reset by
  • Android中SAX解析问题

    您好 我有一个 Android 应用程序 我想从 xml 文件获取数据 我已经使用了 SAX 解析器 但是从这里给出的这种类型的 xml 文件获取数据存在一些问题 所以请给我解决方案 使用SAX解析来解析以下xml文件 我的 xml 文件在
  • 基于查找 df 中其他两列之间最接近的值返回值

    我的问题几乎相同this one https stackoverflow com questions 41496276 return rows establishing a closest value to in r除非不是寻找列值和固定数
  • 写入 VpnService 输出流没有响应

    我的应用程序实现 VpnService 来拦截网络流量并提供量身定制的响应 目标是处理特定地址的流量 并丢弃其他请求 目前 我成功解析传入请求并构建和发送响应 然而 问题在于这些响应并不是作为对原始请求的实际响应而到达的 使用套接字连接进行
  • GridBagLayout 如何将组件向北推

    这是我的代码 public class HomeTopPanel extends JPanel BUTTONS private final JButton myAccountButton new JButton My Account pri
  • java.lang.NoSuchMethodError: org.mockito.Answers.get()Lorg/mockito/stubbing/Answer;

    我正在尝试将 spring boot 版本从 2 2 4 升级到 2 6 6 我能够成功编译应用程序并且能够启动应用程序 但是当我尝试运行测试时 所有测试都因一个错误而失败 java lang NoSuchMethodError org m
  • 在 Threejs 中使用鼠标滚轮更改相机位置.z

    有谁知道如何改变camera position z 用鼠标滚轮 相机 并制作滚动效果 当我尝试使用变量时 它不起作用 TrackballControls or OrbitControls示例中可以使用启用缩放 以及旋转和平移 参见示例htt
  • matplotlib 复制图形并应用更改

    我正在制作一系列具有相同布局的人物 由于布局需要多行代码 我试图复制第一次完成的代码 只更改一些内容 例如标记 如果可能的话 数据虽然我知道它可能会使事情变得复杂 因为它可能需要重新缩放和这样在 plt show 命令结束时 就会显示原始图
  • 进行预测时 conv2d_transpose 取决于 batch_size

    我目前有一个在张量流中实现的神经网络 但我在训练后进行预测时遇到问题 因为我有 conv2d transpose 操作 并且这些操作的形状取决于批量大小 我有一个需要 output shape 作为参数的层 def deconvLayer
  • 带计时器的 .NET Windows 服务停止响应

    我有一个用 C 编写的 Windows 服务 它内部有一个计时器 可以定期触发一些功能 所以我的服务的骨架 public partial class ArchiveService ServiceBase Timer tickTack int
  • 传播 Bash shell 脚本中的所有参数

    我正在编写一个非常简单的脚本来调用另一个脚本 并且我需要将参数从当前脚本传播到我正在执行的脚本 例如 我的脚本名称是foo sh并打电话bar sh foo sh bar 1 2 3 4 在不明确指定每个参数的情况下如何做到这一点 Use
  • 使用另一个字段的值更新 MongoDB 字段

    在 MongoDB 中 是否可以使用另一个字段的值来更新一个字段的值 等效的 SQL 类似于 UPDATE Person SET Name FirstName LastName MongoDB 伪代码是 db person update s
  • 如何使用 d3.js 对分箱时间序列求和?

    我想要一个简单的图表 例如 我拥有的数据是具有两个属性的简单交易列表 时间戳 amount 我尝试了 d3 layout histogram bins 但它似乎只支持counting交易 我一定不是唯一一个在寻找这个的人 不是吗 好的 IR