首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如果只给出了事件点,如何绘制图形?

如果只给出了事件点,如何绘制图形?
EN

Stack Overflow用户
提问于 2012-11-26 06:23:20
回答 2查看 210关注 0票数 1

我正在尝试绘制节点(机器)的可用性。为了节省收集数据的存储空间,我不是以固定的时间间隔记录数据,而是根据事件(添加、删除)进行记录。添加表示“向上”,删除表示“向下/无法到达”

以下是我拥有的示例数据:

代码语言:javascript
运行
复制
2012-11-25 11:11:11.1234 - node added.
2012-11-25 15:01:20.1234 - node removed.
2012-11-25 18:12:12.1234 - node added.

比方说,我想绘制一个从时间范围: 2012-11-24到2012-11-25 (x轴),向上/向下(y轴)的图形,如何绘制该图形?

EN

回答 2

Stack Overflow用户

发布于 2012-11-26 07:03:20

我想在d3工具(http://d3js.org)中有一些例子(我记不清是哪一个了)。

如果你看过这些例子,你可以选择你想要使用的可视化类型。我认为您拥有的数据集将与您尝试做的事情相匹配(您可能需要编写一个小操作符来将up/down注释转换为整数)。

票数 0
EN

Stack Overflow用户

发布于 2012-11-26 10:58:38

如果您将所有数据存储在一个数组中,只需使用JavaScript的内置Array.filter方法,并使用JavaScript的Date对象将时间戳转换为毫秒(请注意,它将舍入到最接近的千分之一秒-只有小数点后3位)。

代码语言:javascript
运行
复制
var startTime = Date.parse("2012-11-24"),
    endTime = Date.parse("2012-11-25") + 86400000; /* Add one day */

filteredData = data.filter(function(d) {
    var time = Date.parse(d.time);
    return (time >= startTime && time < endTime);
});

你可能需要玩弄日期范围,我假设你的意思是你想要2012-11-24和2012-11-25之间的数据。

如果您的数据在数据库中,另一种方法就是简单地查询数据库,使其只显示时间范围内的数据(您可以使用d3.text调用一些PHP脚本,该脚本输出JSON并接受两个GET参数,startTime和endTime)。

代码语言:javascript
运行
复制
d3.text("getNodes.php?startTime=" + startTime + "&endTime=" + endTime, function(json) {
    filteredData = JSON.parse(json);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13556189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档