【发布时间】:2013-06-28 15:09:58
【问题描述】:
我正在使用Rickshaw 创建实时更新的时间序列图。
这里是演示:http://abhshkdz.github.io/icuvisualanalytics/prototypes/rickshaw.html
数据是csv格式(时间,值),这是可视化的核心javascript:
var count = 0, index=0;
var margin = {top: 10, right: 10, bottom: 10, left: 10},
width = window.innerWidth - margin.right - margin.left - 100,
height = window.innerHeight - margin.top - margin.bottom - 100;
var graph = new Rickshaw.Graph( {
element: document.querySelector("#chart"),
width: width,
height: height,
renderer: 'line',
min: -300,
max: 500,
preserve: true,
series: new Rickshaw.Series.FixedDuration(
[
{
name: 'ECG',
color: palette.color()
}
],
undefined,
{
timeInterval: 12.5,
maxDataPoints: 400,
timeBase: data[index][count].x
})
})
var x_axis = new Rickshaw.Graph.Axis.Time( { graph: graph } );
var y_axis = new Rickshaw.Graph.Axis.Y( {
graph: graph,
orientation: 'left',
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
element: document.getElementById('y_axis')
} );
var hoverDetail = new Rickshaw.Graph.HoverDetail( {
graph: graph
} );
graph.render();
setInterval(function () {
if (count == 2397) {
count = 0;
index++;
}
var d = {'ECG': data[index][count+=3].y};
graph.series.addData(d);
graph.render();
}, 12.5);
现在还有一组由算法生成的数据。该数据也是 csv 格式(时间、值)。它基本上找到了这个情节的峰值。使用这些数据,我想在这个可视化本身上标记这些点。
在我看来,Rickshaw 本身并不支持使用不同渲染器的多个系列(两者都必须是线或都是散点图等)。
那我该怎么办呢?
【问题讨论】:
-
如果其他基于 D3 的框架之一(例如NVD3)有你想要的,你可以看看。或者,您可以使用纯 D3,这当然可以让您做自己想做的事。
-
是的,我很容易在纯 D3 中实现它。我想知道是否存在人力车解决方案。
-
您的演示链接已失效。请问可以更新链接吗?