我正在寻找可以将 Dot 语言中的图形呈现为图像文件的 Java 或 Python 库。问题是我需要一个可以在 Google App Engine 上使用的库。基本上我正在寻找一个可以将有向图的文本描述转换为图形图像的库。
例如:
隐藏这个边缘列表:
[A,B]
[B,C]
[A,C]
[C,D]
进入这张图片:
我在此示例中使用了Graphviz,但我知道我无法将它与 Google App Engine 一起使用。
Canviz是您正在寻找的:它是一个 JavaScript 库,用于将 Graphviz 图形绘制到 Web 浏览器画布上。它适用于大多数浏览器。
使用 Canviz 比生成位图图像和图像映射并将其发送到浏览器对您的 Web 应用程序具有优势:
- 服务器只需要让Graphviz生成xdot文本;这比生成位图图像要快。
- 只有xdot文本需要传输到浏览器;这比二进制图像数据小,而且,如果浏览器支持它(大多数都支持),文本可以是 gzip 或 bzip2 压缩的。
- Web 浏览器执行绘图,而不是服务器;这减少了服务器负载。
- 用户可以在不涉及服务器的情况下调整图形大小;这比让服务器以不同大小绘制和发送图形要快。
要查看它的实际效果,请看这里。
Google Charts API现在实验性地支持 GraphViz。(请注意,整个 Image Charts 项目已正式弃用。)
如果只需要显示图形并且不将其嵌入为图像是可以接受的,您可以查看基于 Flash 的perfuse 项目。
他们有一些库的示例应用程序,例如这个Dependency Graph。