在 java 中可视化图表

Visualize graphs in java

我目前正在从事一个大学项目,以在 java 中实现简单的图形算法 (https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) 我正在努力寻找一个简单的解决方案来将我创建的图表导出到图像文件(即 .png)

我已经看过 GraphViz 和 GraphStream 等工具,但它们似乎更注重可视化自己的代码以创建图形。

有人知道可以解释我在图像文件中生成的输出的简单库或外部工具吗?如果可能,一些轻量级且易于实现的东西。

[我的代码] ---> [输出] ---> [我在寻找什么] ---> [图像文件]

如果您使用 Graphviz Dot 语言生成输出,您可以使用 dotty 将其可视化并使用 dot 程序导出为 PNG 或其他图像格式。 Dot 语言非常简单,例如这是一个有向图,有 3 个节点构成一个循环,第三个节点有一个自边。

digraph {
A -> B
B -> C
C -> A
C -> C
}

这是它在 dotty 中的呈现方式:

您的要求表述得很松散,但这里有一些答案:

  • 如果您希望'in search of'同时放置节点和边,则上面的答案有效
  • 如果你想自己放置节点,graphviz 支持这个 - 在常见问题解答中搜索 "already have all the coordinates for the nodes"。 dot -Tdot yourinputfile 将给出您需要创建的输出示例。您可以跳过边缘的 pos
  • 如果要同时放置节点和边,请参见上文,但在边上包括 pos 并使用 neato -n2(边总是样条曲线,但直边很容易计算)
    • java 没有可以使用的图形例程吗?
  • 如果你想定位节点和边缘但不喜欢 graphviz 解决方案,请尝试 dpic (https://ece.uwaterloo.ca/~aplevich/dpic/) 它稍微低级并为你提供更多控制

祝你好运