19

我正在寻找可以将 Dot 语言中的图形呈现为图像文件的 Java 或 Python 库。问题是我需要一个可以在 Google App Engine 上使用的库。基本上我正在寻找一个可以将有向图的文本描述转换为图形图像的库。

例如:

隐藏这个边缘列表:

[A,B]
[B,C]
[A,C]
[C,D]

进入这张图片:

示例图像

我在此示例中使用了Graphviz,但我知道我无法将它与 Google App Engine 一起使用。

4

4 回答 4

19

Canviz是您正在寻找的:它是一个 JavaScript 库,用于将 Graphviz 图形绘制到 Web 浏览器画布上。它适用于大多数浏览器

使用 Canviz 比生成位图图像和图像映射并将其发送到浏览器对您的 Web 应用程序具有优势:

  • 服务器只需要让Graphviz生成xdot文本;这比生成位图图像要快。
  • 只有xdot文本需要传输到浏览器;这比二进制图像数据小,而且,如果浏览器支持它(大多数都支持),文本可以是 gzip 或 bzip2 压缩的。
  • Web 浏览器执行绘图,而不是服务器;这减少了服务器负载。
  • 用户可以在不涉及服务器的情况下调整图形大小;这比让服务器以不同大小绘制和发送图形要快。

要查看它的实际效果,请看这里

于 2010-02-19T11:04:14.917 回答
12

Google Charts API现在实验性地支持 GraphViz。(请注意,整个 Image Charts 项目已正式弃用。)

于 2010-07-02T19:06:48.727 回答
0

我不认为有这样的纯 python 库,你能做的最好的就是使用NetworkX,它可以使用 matplotlib 或 pygraphviz 绘制。也许您可以修改networkx的matplotlib代码以在服务器端绘制,这里是代码

另一个问题是谷歌应用引擎没有任何绘图 API,但您可以简单地使用 SVG 来生成此类图形,或者可能是谷歌图表 API 已经有一些东西。

于 2010-02-15T12:22:47.003 回答
0

如果只需要显示图形并且不将其嵌入为图像是可以接受的,您可以查看基于 Flash 的perfuse 项目。

他们有一些库的示例应用程序,例如这个Dependency Graph

于 2010-02-16T23:46:47.373 回答