在Google App Engine上渲染有向图的库(类似于graphviz)

19 投票
4 回答
8176 浏览
提问于 2025-04-15 19:17

我在找一个可以把Dot语言的图形渲染成图片文件的Java或Python库。问题是,我需要一个可以在Google App Engine上使用的库。简单来说,我想要一个能把有向图的文字描述转换成图像的库。

举个例子:

把这个边列表:

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

转换成这个图片:

示例图片

我用的是Graphviz来做这个例子,但我知道在Google App Engine上用它是不行的。

4 个回答

0

如果你只是想显示一个图表,并且不介意它不是以图片的形式嵌入的话,可以看看这个基于Flash的perfuse项目

他们有一些这个库的示例应用,比如这个依赖关系图

12

谷歌图表API现在实验性地支持GraphViz这个工具。你可以在这里查看相关信息(注意,整个图像图表项目已经正式停止更新了)。

19

Canviz 是你需要的工具:它是一个用来在网页上绘制 Graphviz 图形的 JavaScript 库。它可以在 大多数浏览器 上使用。

使用 Canviz 对你的网页应用有几个好处,相比于生成和发送位图图像和图像地图到浏览器:

  • 服务器只需要让 Graphviz 生成 xdot 文本;这比生成位图图像要快。
  • 只需要把 xdot 文本传输到浏览器;这个文本比二进制图像数据要小,而且如果浏览器支持(大多数都支持),这个文本可以进行 gzip 或 bzip2 压缩。
  • 绘图的工作由网页浏览器来完成,而不是服务器;这减轻了服务器的负担。
  • 用户可以自己调整图形的大小,而不需要服务器的参与;这比让服务器重新绘制并发送不同大小的图形要快。

想看看它是怎么工作的,可以点击这里

撰写回答