【问题标题】:Graph visualization frameworks图形可视化框架
【发布时间】:2014-02-23 04:02:55
【问题描述】:

我想在图形应用程序中可视化 Neo4j 数据库。 (我这样做主要是作为学习练习)。

我希望它的行为与 Neo4j 的 WebAdmin 中的可视化几乎相同:当图形出现时,我希望看到节点在它们到达最终位置时四处移动,并且我希望用户能够单击并拖动屏幕周围的节点图标,并让它们粘在它们被放置的位置,图形的其余部分会调整以适应变化。

我有两个问题。

  • 以上段落中粗略描述的三个要求的技术术语是什么?
  • 我是一名没有 JavaScript 经验的 Java 程序员,但我认为,通过这个项目,是时候获得一些经验了 - 特别是 sigma.js 似乎非常强大且相对简单。然而,最终这需要在 Java Swing 应用程序中完成,虽然我知道可以使用各种容器将 JS/HTML 内容嵌入到 Swing 中,但似乎纯 Java 解决方案仍然是理想的,我对任何可能使这成为可能的框架感到好奇。我现在正在研究 Gephi,但它似乎没有 sigma.js 强大或简单易用。我在这个假设上错了吗?
  • 总结第二个问题:哪个是我的时间更好的投资:学习sigma.js 和各种 JS 框架(这需要我熟悉 JS),还是学习在 Java 中使用 Gephi? (假设我对图形可视化有普遍和长期的兴趣)

【问题讨论】:

  • 我相信动画图形布局是强制导向布局是描述它的术语。如果应用程序是基于浏览器的,d3.js 似乎是一个不错的选择,例如谷歌“d3.js 网络图”并在图片中搜索相关示例。
  • 我使用 GraphStream (graphstream-project.org) 来可视化由密码结果构建的内存子图(制作语义网络的电影)。适用于 Java Swing。我主要以编程方式操作 GS 图,所以我不知道它对鼠标单击和拖动有多好。

标签: javascript neo4j graph-databases gephi sigma.js


【解决方案1】:

Java 可视化

Gephi 为不包含 UI 模块的 Java 和 Python 提供 provide a toolkit,因此除非您想使用 Gephi 本身来可视化您的网络,否则只要我知道,您就无法将其 UI 嵌入到您的 Java/Swing 应用程序中。 该工具包包含所有算法和插件基础架构,因此如果您想使用嵌入在您的应用中的一些分析工具,您可以使用它,否则我认为不是您的情况。

如果您想在此处进行图形可视化,还有其他 Java 选项:Java graph library for dynamic visualisation

关于 Gephi 和 sigmaJS

  • 恕我直言,Gephi 比 sigma.js 强大得多:它具有完整的 SNA 工具、多种布局、数据编辑器、导出器、插件系统...

  • 一个重要因素也是您想要可视化的数据集的大小:虽然 sigmaJS 可以在视图中处理多达 500 个节点,但 Gephi 在 GPU 支持下也可以轻松布局 50000 个节点。

  • Gephi 是一种科学工具,专为不想编写代码以可视化网络的人们而设计,它可以完成工作。 SigmaJS 是在网页上可视化图形的众多 JS 解决方案之一。

  • 您可以随时export to sigmaJS from Gephi with a plugin

什么更好?

在故事的最后,我猜你要使用的工具取决于:

  • 您是否必须可视化一个大数据集? -> Java 解决方案将赢得大型解决方案
  • 您需要轻松分发它吗? -> Web 应用程序 / SigmaJS 赢得分布式
  • 您想与您的应用程序完全集成吗? -> Java 获胜

【讨论】:

    【解决方案2】:

    我找到的最好的是 Keylines,但它并不便宜。 Gephi还可以,但是上次看的时候不支持Neo4j 2.0

    如果你的程序员 Neo4j 是开源的,那么你可以在 Git 上 fork 存储库并使用它(不过,在将任何产品商业化之前,你必须检查许可模型)

    【讨论】:

      猜你喜欢
      • 2012-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-26
      • 1970-01-01
      相关资源
      最近更新 更多