javascript - D3.js 从现在开始的时间刻度

标签 javascript d3.js

我有一个图表,显示过去 90 分钟的实时数据,目前我的 x 轴使用标签为 90 到 0

xRRange = d3.scale.linear().range([MARGINS.left, WIDTH - MARGINS.right])
                           .domain([90,0])

我想要做的是将数字 0 - 90 替换为时间,即 90 将是 now-90,0 将是 now 我已经尝试了以下方法,但它无法绘制轴,任何我出错的想法

var xStart = Math.round(+new Date()/1000);
var xEnd = xStart - (60*90);
xTRange = d3.scale.time().range([MARGINS.left, WIDTH - MARGINS.right])
                         .domain([xEnd, xStart])
                         .nice() 
xTAxis = d3.svg.axis().scale(xTRange)
                      .tickSize(20)
                      .tickSubdivide(true);
vis.append('svg:g').attr('class', 'x axis')
                   .attr('transform', 'translate(0,' + (HEIGHT - MARGINS.bottom) + ')')
                   .call(xTAxis);

最佳答案

您似乎交换了 xEnd 和 xStart。在第一个代码块中,较小的值位于末尾。在第二个中,较大的值位于末尾。

此外,第一行将 xStart 和 xEnd 值转换为秒。您不会在 domain 调用中将它们转换回毫秒。当 d3 将它们强制转换为日期时,它们将不会是您所期望的(会少得多)

关于javascript - D3.js 从现在开始的时间刻度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32025743/

相关文章:

javascript - NodeJS - Uncaught ReferenceError : primordials is not defined

javascript - 通过 jquery 更改多个标签上使用的特定 ID 的 CSS

javascript - d3 SVG Line 元素不触发 onclick 事件

javascript - 使用 d3.js 组合父数据和嵌套数据

javascript - 在 D3 中的 SVG 元素内动态居中过滤节点

javascript - 通过 jQuery 将单选按钮变成链接

对象中的 JavaScript 变量赋值

javascript - 在逗号分隔列表上应用 url 验证正则表达式

javascript - 如何画 donut ?

javascript - 具有多个图的 D3 转换