大量数据实时可视化
Large quantity of data real time visualization
我正在构建一个仪表板,从JSON格式的MQTT接收大量数据(数据频率±4Hz)。我试图将这些数据可视化,最初选择了Highcharts(http://www.highcharts.com/)但很快就意识到浏览器不能简单地处理那么多信息。
我对可视化如此大量的数据还很陌生,所以如果有关于如何处理这些数据的建议,我将不胜感激(目前arduino将数据发布到给定的主题,我会在服务器上接收它们,存储在mongo中,并发送到浏览器进行更新)。我的整个方法可能完全错误,所以请引导我走一条路!
您的问题可能是Highcharts创建的SVG太大,浏览器无法及时处理。如果你有太多的数据点,你需要做2件事中的1件。
-
切换到使用HTML5 Canvas而不是SVG 的图表库
-
使用最佳拟合或其他曲线插值缩小数据。
如果切换到基于Canvas的图表,您将失去SVG的一些很酷的功能,但每个数据点都会进入页面。我过去曾使用过jqChart。不过它不是免费的。
如果减少数据,并不是每个数据点都能进入页面,但SVG允许的良好功能仍然存在。你可能仍然可以使用高图表。
我认为您需要了解crossfilter(filtering-lib)、dc.js(d3和crossfilter-的辅助库)它们可以很好地处理大量数据
在使用Highcharts超过3年后,即使对于有疑问的用例,我也可以推荐它。如果你已经选择了Highcharts(经过与其他图表库的比较)并在其中投入了相当长的时间,那么按照建议使用其他图表库可能不是一个好选择。如果你喜欢,就坚持使用。
为了解决这个有数千个数据点的边缘案例,该团队宣布了boost.js模块。
它源于Github上的这个问题。讨论揭示了许多关于问题领域的背景信息。它还展示了Highcharts团队在客户/社区驱动的开发方面做得有多好。
如果你还想的话,你可以用Highcharts来做。:-)
最后但并非最不重要的是,我可以推荐Packt 的Highcharts食谱
我使用grafana来可视化我的时间序列数据。我认为它目前不支持mongodb。我使用influxdb作为数据后端。
- 如何在谷歌可视化中组合数字和模式格式化程序
- 加载泰坦尼克号可视化数据时出现问题
- 如何使用图表包装函数有条件地格式化谷歌可视化表单元格
- AngularJS&Google可视化-使用状态更改处理程序(Google API)在HTML页面上查看$sco
- Javascript图形可视化工具包,具有高性能(500-1000个节点)
- Google可视化addListener调用函数引用错误
- 如何在web上动态可视化数据集
- 可视化到选择框中
- 从特定系列的谷歌可视化折线图中删除悬停工具提示
- 谷歌图表可视化仪表板数据源问题
- 在可视化中将CSS从悬停更改为单击
- 使用 d3 可视化快速射击的“点击”
- 为 D3 可视化创建平均 Y 线
- 谷歌可视化数据表间歇性问题
- Google 图表 - 设置选择不会滚动到表格可视化中的选定行
- 在纯HTML5中是否可以进行高级可视化编程
- 无法可视化百分比数字(获取 NaN)
- 如何修复谷歌可视化-材料线中的重叠问题
- 谷歌地图,基于国家代码可视化国家
- 大量数据实时可视化