实时数据图表

26

我想建立一个基于Web的实时数据图表,我正在研究不同的选项,例如:

  • Html5画布
  • 具有图形支持的JS库,如Extjs

所谓实时,是指客户端每秒轮询Web服务器或使用反向Ajax;当可以使用数据时,服务器会将数据推送到客户端。

你能否推荐任何选项?


1
什么是实时?每天、每小时、每年、每毫秒?图表显示了什么?股票指数、天气、龙卷风、人员位置? - Caspar Kleijne
它应该是可配置的,可以通过客户端每秒轮询服务器或通过反向ajax来实现,当有数据可用时,服务器会将数据推送到客户端... - ken
你应该查看这篇文章 http://www.techrepublic.com/blog/five-apps/create-real-time-graphs-with-these-five-free-web-based-apps/ - pedrorijo91
关于现成的服务,我推荐使用 http://plotti.co/,它非常简单易用 - 它自动处理投票和所有相关事项,甚至不需要任何JS(免责声明:我是plottico的创建者)。 - grandrew
3个回答

16

SmoothieCharts非常好,尽管它仅显示时间序列的短滑动窗口。我还没有找到像SmoothieCharts一样好看但在时间序列增长时压缩水平轴的东西(从而确保始终显示完整的时间序列,无论其大小如何)。 - Peter
1
我尝试了Smoothiecharts,它正是我们需要的实时条形图动态数据显示。哇——非常容易实现,并且可以在FF Chrome IE上运行。 - Doug Null

15

您可能想考虑使用Flot,这是一个基于jQuery的开源绘图库。

我假设您所说的实时是指图表将自动更新。如果您要使用1秒间隔的AJAX轮询获取和绘制数据,则以下是您的代码示例:

function fetchData() {
   $.ajax({
      url:      'json_fetch_new_data.php',
      method:   'GET',
      dataType: 'json',
      success:  function(series) {
         var data = [ series ];

         $.plot($('#placeholder'), data, options);
      }
   });

   setTimeout(fetchData, 1000);
}

请务必查看以下演示,以查看其实际效果(单击“轮询数据”按钮):

有关Flot的更多信息:



网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接