实时图表(SVG)+ AJAX/Javascript/Jquery + StdOut + Python + 我自己也不太清楚

1 投票
4 回答
5336 浏览
提问于 2025-04-16 16:32

我现在不太确定怎么准确描述我的问题,脑子里一团乱,所以请你们帮我理理思路,如果我说错了请纠正我,我肯定会错的。

主要目标:

是要制作一个实时更新的折线图,它可以根据从标准输出(stdout)来的数据自动更新,而不需要重新加载网页。简单来说,就是需要一个Python脚本,它每秒获取一个值,然后根据这些值在折线图上继续绘制线条。

1) 现在我脑海中想到的基本标签有:Javascript / AJAX,cgi,Python http网页服务器,SVG(矢量图形)。

所以,我最大的问题是我不明白如何持续地将stdout的值传输到网页上。我应该自己写一个Python http网页服务器,想办法传递这些值,然后用Javascript或AJAX加上SVG来绘制图表吗?

还是说写一个http网页服务器是个愚蠢的主意,我可以用其他方法让它工作?

任何其他建议,或者指引我去一些教程或文章都非常欢迎。因为现在我真的很困惑,尤其是在如何持续传递值到网页这部分。

提前谢谢你们。希望你们能给我一些指引 =)

4 个回答

2

还可以看看Flot的实时更新功能:http://people.iola.dk/olau/flot/examples/

我使用数据库作为缓冲区,所以不需要用Comet或其他推送技术。

4

Highcharts非常适合用来展示静态数据,或者数据更新速度最多为1000毫秒的情况。如果你把更新速度改成100毫秒,效果就会很糟糕。

我推荐你试试Smoothie Charts。这个工具非常适合你的需求。

2

你想做的是用JavaScript来绘制图表,比如可以使用一个叫highcharts的库。然后,你可以用AJAX向网络服务器发送请求,以获取你的数据。

根据你的需求,你可以定期发送这些请求来获取新数据。或者你也可以考虑使用更高效的技术,比如web socketscomet等。

撰写回答