在D3中可视化连续的数据流

时间:2015-10-01 20:06:45

标签: javascript d3.js stream data-visualization

我希望能够实时显示地球上的事件。我有数据(lat,longs)不断进入,我希望能够将这些数据(纬度和经度的json)发送到我的d3脚本并绘制(转换)地图上的纬度,经度。我知道如何使用d3绘制地图。唯一的问题是我很困惑如何在d3 / HTML中创建一个端点,当点击时可以更新视觉效果。此外,每秒可能有很多响应,所以我将如何能够同时处理多个请求。

我认为这个系统的架构对我来说太复杂了。任何建议都会非常有用。

2 个答案:

答案 0 :(得分:2)

了解如何访问您的数据是值得的,以确定要执行的操作。理想情况下,您需要single source of truth用于可视化,以便在重绘时避免出现问题,并使您更容易思考问题。

如果它是一个API,您可以定期进行ajax轮询,或者如果您的浏览器支持它,您可以尝试使用websockets。这是另一个SO discussion用于实时更新。

至于实际的d3实现:因为你已经可以绘制地图(以及希望得到的点),你可以使用reusable charts模式作为图表函数,每次调用函数时都会更新数据。 D3 general update pattern应该让你的积分与你传入的任何数据保持同步。你甚至可以添加过渡以使它变得有趣!

答案 1 :(得分:0)

websockets可以是一个解决方案,您可以在其中监听事件,并在事件发生时,为d3渲染提供回调函数。