是否有一个库可以用 Java 和 Javascript 为相同的数据生成相同的图表?
我的任务是:
- 显示一些华丽的动态图表在浏览器中,更好地使用动态工具提示、缩放等(我在这里考虑Javascript)
- 并在服务器端用 Java 生成相同(或足够相似)的图表,以便自动发送它们在电子邮件中(在这种情况下根本没有浏览器)。
我想避免使用 Flash 来实现 iPhone 互操作性。
有一些静态服务器端图表,例如 Eastwood/JFreeChart,但我想让它在浏览器中更加活跃。
是的,我可以通过 Ajax 重新加载静态图像。还有其他选择吗?
为什么这个问题已经一年多了却没有答案?!我建议采用一种相当有问题且有些硬核的方法。
使用JavaScript,太棒了!
这是您的成功公式:d3.js+
jsdom+
Rhino+
Batik
具体来说:
-
使用一些灵活的 JavaScript 库生成图表,例如d3.js.
-
Use jsdom在服务器端运行 d3。 Jsdom 是纯 JS 库,众所周知 d3 正在其之上工作。
-
在里面运行 jsdom 和 d3Rhino- 自 1.6 起,JavaScript 引擎就内置于您心爱的 JVM 中(耶,JSR-223!)。不过,我建议您将其更新到最新版本(它位于 Maven Central 上,整洁!)。我猜Node.JS可以做得更好,但我假设你被 Java 困住了。
另请注意,有一个更旧、更成熟且特定于 Rhino 的服务器端 DOM 实现 -EnvJs (需要 Rhino 1.7R2,而不是 R3)。如果 jsdom 不适合你,你可以尝试一下。
-
Use Batik光栅化 d3 生成的 SVG。Batik 甚至支持通过 Rhino 在 SVG 内编写脚本。这意味着如果您愿意,您可以在服务器端生成交互式图表。我也在实践中使用过它,并获得了很好的经验。
整个方法已知有效服务器端使用 Node.JS 作为 JS 引擎,使用 ImageMagick 作为光栅化器但我认为没有理由它对你不起作用。
顺便说一句,如果你能让一切正常运行,请告诉我。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)