【问题标题】:Library to render Directed Graphs (similar to graphviz) on Google App Engine在 Google App Engine 上呈现有向图的库(类似于 graphviz)
【发布时间】:2016-07-27 06:25:48
【问题描述】:
我正在寻找可以将 Dot 语言中的图形呈现为图像文件的 Java 或 Python 库。问题是我需要一个可以在 Google App Engine 上使用的库。基本上我正在寻找一个可以将有向图的文本描述转换为图形图像的库。
例如:
隐藏这个边列表:
[A,B]
[B,C]
[A,C]
[C,D]
进入这张图片:
我在此示例中使用了Graphviz,但我知道我无法将它与 Google App Engine 一起使用。
【问题讨论】:
标签:
java
python
google-app-engine
graph
graphviz
【解决方案1】:
Canviz 是您正在寻找的:它是一个 JavaScript 库,用于将 Graphviz 图形绘制到 Web 浏览器画布上。它适用于most browsers。
使用 Canviz 比生成位图图像和图像映射并将其发送到浏览器对您的 Web 应用程序具有优势:
- 服务器只需要Graphviz生成xdot文本即可;这比生成位图图像要快。
- 只有xdot文本需要传输到浏览器;这比二进制图像数据小,而且,如果浏览器支持它(大多数都支持),文本可以是 gzip 或 bzip2 压缩的。
- Web 浏览器执行绘图,而不是服务器;这减少了服务器负载。
- 用户可以在不涉及服务器的情况下调整图形大小;这比让服务器以不同大小绘制和发送图表要快。
要查看它的实际效果,look here。
【解决方案4】:
我觉得没有这么纯的python库,最好用NetworkX,可以用matplotlib或者pygraphviz画图。也许你可以修改networkx的matplotlib代码在服务器端绘制,here是代码
另一个问题是 google app engine 没有任何绘图 API,但您可以简单地使用 SVG 来生成这样的图形,或者可能是 google charts API 已经有了。