Java 如果只给出事件点,如何绘制图形?
我正在尝试绘制节点(机器)的可用性。为了节省对收集的数据的存储,我不是按固定的时间间隔记录数据,而是根据事件(添加、删除)记录数据。添加表示“向上”,删除表示“向下/无法访问” 以下是我的样本数据:Java 如果只给出事件点,如何绘制图形?,java,excel,graph,d3.js,diagram,Java,Excel,Graph,D3.js,Diagram,我正在尝试绘制节点(机器)的可用性。为了节省对收集的数据的存储,我不是按固定的时间间隔记录数据,而是根据事件(添加、删除)记录数据。添加表示“向上”,删除表示“向下/无法访问” 以下是我的样本数据: 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到201
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轴)的图表,如何绘制图表 我想d3工具中有一些例子(我不记得是哪一个)(http://d3js.org) 如果您通读这些示例,您可以选择要使用的可视化类型。
我认为您拥有的数据集将与您尝试执行的操作相匹配(您可能需要编写一个小运算符将向上/向下注释转换为整数)。如果您将所有数据存储在一个数组中,只需使用JavaScript的内置方法,并使用JavaScript的对象将时间戳转换为毫秒(请注意,它将四舍五入到最接近的千分之一秒-仅小数点后3位)
一种简单的方法是计算“添加节点”(+1)和“删除节点”(-1)的累计和的时间序列事件。然后您可以生成日期/时间与累计总和的散点图。根据数据,这可能足够好。有两个挑战:1.我是否应在2012-11-25 11:11:11之前将数据绘制为节点移除?2.事件发生的时间单位可能不是离散图形单位,例如,x轴的间隔为5分钟单位。
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);
});
d3.text("getNodes.php?startTime=" + startTime + "&endTime=" + endTime, function(json) {
filteredData = JSON.parse(json);
});