如何使用 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 导入子模块以轻松创建图例?

    我对 JavaScript 和 D3 比较陌生 所以请记住这一点 我创建了一个可视化来显示仓库中特定位置的访问频率 并希望使用连续色标添加图例 我看过几个街区 可能会想出一些离题的东西 但是我遇到了this https observable
  • D3 强制定向图 ajax 更新

    我使用 d3 js 和 jquery 以及 PHP 后端 基于 yii 框架 来创建动态力定向图来表示我们使用 Nagios 监控的网络上主机和服务的当前状态 该图显示根 gt 主机组 gt 主机 gt 服务 我创建了一个服务器端函数来返回
  • 熊猫到D3。将数据帧序列化为 JSON

    我有一个包含以下列且没有重复项的 DataFrame region type name value 可以看作是一个层次结构 如下所示 grouped df groupby region type name 我想将此层次结构序列化为 JSON
  • 使用频带刻度的相同可重复字符串值

    我是 D3 的新手 想绘制带有 6 个水平条的图表 我的 xAxis 与它们的值是scaleLinear 的 所以我希望 yAxis 只是一个包含每个条形名称的列表 所以对于 yScale 我有 6 个名称 Games Apps Games
  • SVG 路径超出 d3 画笔上的图表区域

    当我尝试刷动和缩放折线图的一部分时 所选区域的某些部分会呈现在图表之外 代码和行为再现可以在以下位置找到这个jsbin https jsbin com jamojonaqu edit js output 单击并拖动以选择一部分并放大 双击以
  • 如何在 Apex 中向 D3 力定向图添加动态图例?

    我在 Apex 中构建了一个 D3 力图 基本上就像http bl ocks org mbostock 1093130 http bl ocks org mbostock 1093130 or http bl ocks org mbosto
  • 调整小倍数迷你图

    我有一个热图 显示一些数据和热图每行的迷你图 如果用户单击行标签 则数据按降序排列 因此每个矩形都会放置在正确的位置 反之亦然 如果用户单击列标签 每个反应都以正确的方式放置 但我无法放置迷你图 这是代码 http plnkr co edi
  • 使用不同颜色的 dc.js 显示原始(有条件)拉丝未拉丝交叉过滤器条

    假设我们有以下 crossfilter dc js 应用程序 虽然这很好 但用户在刷牙时会失去对人群的 参考 我想要图表x y z and a在刷其他图表时保留 基础 柱 也许是不同的颜色 如下所示 我相信这可能需要更新dc renderA
  • d3.forcesimulation() 链接距离

    我在堆栈上查看了不同的链接距离 似乎为了改变链接距离 您需要实现一个函数 然后传递它来动态分配链接距离 如下所示 function linkDistance d return d distance 然后我认为我可以传递给 svg 但返回函数
  • 为什么这个标题图形不随世界更新

    对于以下内容 我很高兴组合框默认为世界 但当收音机被点击时 我也希望标题移回 世界 我该怎么做 我有这个笨蛋 http plnkr co edit 9FXJXVqLZLPFdDrmVJez p preview http plnkr co e
  • d3.js。带条的旋转地球仪

    我正在尝试创建带有像这样的酒吧的旋转地球仪这个例子 http data arts appspot com globe 你可以看我的例子here http jsfiddle net zeleniy jrh5xucs 一切都很顺利 直到酒吧超出
  • Webpack 不包括 ProvidePlugins

    我正在开发一个小型试用 Web 应用程序 它使用 vue webpack 模板 https github com vuejs templates webpack https github com vuejs templates webpac
  • NVD3/D3改变y轴最小值

    我目前正在使用 NVD3 制作一些折线图 我想知道是否可以使 y 轴刻度始终从 0 开始 目前它始终从最低的 y 值开始 我尝试过使用tickValues 但我不想更改其他值 我还尝试添加值为 0 的数据点 但这似乎是一种解决方法 它会影响
  • D3:如何在Groups of Force布局节点上绘制多个凸包?

    我试图在力布局中的所有组上绘制凸包 但我只画出了一半的凸包 当 D3 尝试绘制其余的船体时 控制台返回错误 元素尚未创建 然而 当我检查控制台中的 groups 变量时 所有组数据都在那里 x y 数据都设置得很好 见下图 我什至尝试在ti
  • d3.js:非线性图轴

    我正在尝试在轴上添加自定义比例 如下所示 这个想法是 一个刻度总是比前一个刻度大 2 倍 我的理解是 这是一个定制秤 我做了一些研究 但找不到类似的东西 所以我想我的问题实际上是两个问题 这个尺度是数学世界的 标准 吗 这是否可以使用来实现
  • 如何运行 D3 示例

    例如https observablehq com d3 zoomable treemap https observablehq com d3 zoomable treemap 如果将脚本片段粘贴到
  • 如何使用 D3 (或只是 javascript)将表单选项设置为“选择”

    有没有一种方法可以搜索选择表单元素中的所有选项 并将具有匹配值的选项指定为 已选择 var xStat G var statOptions Points PTS Goals G Assists A Penalty Minutes PIM c
  • 将元素添加到 D3 圆包节点

    我正在尝试制作一个可缩放的圆形包装图 我希望每个子圆圈包含一个较小的图表 该图表始终具有相同的结构 即 4 列 只有条形的高度会改变 我尝试添加一个简单的rect到目前为止我的图表 但矩形没有添加到圆圈中并且是静态的 JS var marg
  • 如何在没有 DOM 的情况下将 javascript 作为 node.js 脚本运行?

    https github com jasondavies d3 cloud https github com jasondavies d3 cloud是一个使用 D3 库的 javascript 文字云 这是一个交互式演示 http www
  • D3 v4 在同一元素上进行画笔和缩放(鼠标事件不冲突)

    我的目标是构建一个使用两者的 D3 v4 图表d3 zoom https github com d3 d3 zoom and d3 brush https github com d3 d3 brush一起 如下 当鼠标位于 x 轴上时 用户

随机推荐

  • 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