可视化“朋友的朋友”(foaf)图

7
我写了一个脚本来导出 Twitter 好友的 foaf rdf 描述。现在我正在寻找一个可视化好友网络的工具。我尝试过 http://foafscape.berlios.de/,但对于 300 多个节点来说,它非常缓慢,并且自动格式化效果很差。
有没有好的图形可视化工具推荐?如果它们不直接支持 foaf,也没关系,但它们应该能够使用图形节点并能够显示大型图形。最好支持 Linux。
哦,我还在寻找一个可以手动移动节点的交互式工具。
更新:感谢您的建议。我知道 graphviz,对于静态图像来说它真的很棒。但是对于大型数据集,我需要能够选择节点并突出显示所有邻居的工具。
- Prefuse 看起来很棒:http://prefuse.org/gallery/graphview/ - 通过 Prefuse,我找到了 vizster,这正是我所寻找的(只需要找到一些源代码):http://jheer.org/vizster/

添加“rdf”和“semantic-web”标签。 - Eric Schoonover
11个回答

5

也许 Prefuse 可视化工具包可以帮助你。它基于 Java 并且有很多示例应用程序,包括一个 图形查看器


flare prefuse (http://flare.prefuse.org/) 是 prefuse 的 actionscript 版本。建议使用 graphviz 和自制的混合方法,可能采用强制定向布局。 - tm_lv

4
你可以尝试使用Graphviz。它可以在Linux、Windows和Mac OS X上运行,并生成图形的图像(PNG,PS等)。你需要将你的foaf数据转换成自定义语言,但这很容易学习。

3

根据其他帖子的推荐,一定要使用Graphviz。它接受一个名为foaf.dot的输入文件,格式如下:

graph G {
    "George Formby" [shape=custom, shapefile="file:formby.png"];
    "Michael Jackson" [shape=custom, shapefile="file:jackson.png"];
    "George Formby" -- "Michael Jackson";
    "Fred Flinstone" -- "Michael Jackson";
    "Michael Jackson" -- "Steve McQueen";
}

请注意,此文件描述了一张无向图(希望您的友谊是相互的)。有向图的语法类似。
为了将您的图形输出到PDF文件中(假设您已经安装了Graphviz),请运行以下命令。
dot -Tpdf foaf.dot > foaf.pdf

Graphviz支持多种输出格式,除了pdf以外,详见其文档。
我发现“dot”程序通常提供最佳的输出结果,然而Graphviz总共包含5个布局程序。从文档中可以得知:
- dot - 用于绘制有向图的过滤器 - neato - 用于绘制无向图的过滤器 - twopi - 用于绘制图形的径向布局的过滤器 - circo - 用于绘制图形的圆形布局的过滤器 - fdp - 用于绘制无向图的过滤器

所有这些解决方案的糟糕之处在于你不能直接将RDF图形输入其中。你总是需要转换为某种专有的图形定义语言。 - Eric Schoonover
将图形转换并不是大问题,但我确实需要能够交互地使用工具,例如选择一个节点并查看其所有相邻节点高亮显示。对于静态生成图形,Graphviz非常出色。 - Peter Hoffmann

3

我之前推荐过Graphviz,但是现在我想再加一个推荐,因为我使用了比这里很多工具都新的Gephi。它是一个非常强大的交互式图形探索工具,我发现它比这里的很多替代品更易用、更快。


3

我不知道有哪个程序可以自动生成图形可视化并允许您交互式地调整节点,但是Graphviz是一个非常流行的图形可视化工具。它可以导出到SVG,因此您可以在喜欢的矢量图形编辑器中编辑结果。


2

1

对于大型图形,Gephi(http://gephi.org/)非常受欢迎。它具有高度可定制性,提供了许多布局和演示选项。


1

你试过基于Python的IDE NodeBox(1.0)吗?这就是我用来生成这些内容的:http://givememydata.com/#images

vizster看起来很酷,我会去看看的。


1

1
如果您正在使用Java,您可以使用JGraph

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接