寻找实时大型数据集图表平台的选项,以处理大量不断发展的数据,并通过浏览器以可用的方式显示。
需要基于数据库后端与某些Flash应用程序的“读取XML文件”方法。
答案 0 :(得分:2)
JFreeChart是一个免费且可扩展的解决方案。
答案 1 :(得分:1)
这可以为您提供更高的吞吐量,因为图形是在客户端重新生成的,并且在用于绘图的平台内。
以下是您可以实现的几个示例:
chart http://img140.imageshack.us/img140/5143/rapahelchart.png graph http://img269.imageshack.us/img269/6679/raphaelgraph.png
答案 2 :(得分:0)
由于图表可以在浏览器上查看,因此您可以使用类似gnuplot的内容生成数据的图像文件并显示它们。 Gnuplot非常灵活,您可以创建几乎任何东西,而且速度非常快。但是你必须自己阅读数据并将其输入到gnuplot中。如果你想坚持使用Java,那么gnuplot有一些Java接口。将刷新标头设置为合理数量并观察您的数据更新。
请点击此处了解gnuplot:http://www.gnuplot.info
请参阅此处有关java接口的信息:http://www.gnuplot.info/links.html
答案 3 :(得分:0)
我曾经不得不显示150台机器和100,000个任务的甘特图。我用自定义渲染编写了一个自定义Java小程序,数据传输由http + java序列化api处理。我发现任何其他解决方案(SVG,VML,Flash,图像标签)都太慢而且难以操作。
更新:Here是图片的样子。不幸的是,社区,这是一个工业项目,因此,源代码不公开。我只能分享一些关于它的概念。
图表区域包含几个不同的组件:水平和垂直滚动条,图表区域,时间标签和每侧的两个表格。这些组件通过事件处理程序链接在一起。如果正在滚动/更改它会影响其他人。甘特图由填充的矩形组成,其中颜色用于指示任务的状态。渲染在paint()方法中完成,循环遍历每条可见线以及可显示的开始日期之间。渲染使用积极剪辑而不是依赖Graphics2D的剪切功能。用户可以平移和缩放视图。
数据存储在可序列化的数据结构中。服务器端Java代码包含整个数据结构的缓存。此结构每30秒刷新一次,但只从备份数据库中检索差异。然后由applet查询数据,组合到甘特图模型中,序列化并返回到客户端。客户端/小程序端的数据刷新不是自动的:用户需要单击刷新按钮 - 这样他们就可以评估图片而不会发生意外更改。
渲染甘特图不需要那么多的花哨 - fillRect,AlphaComposite,drawLine。如果您需要更复杂的图像,则需要使用我的方法进行更多编码。