Визуализируйте графики в java - PullRequest
0 голосов
/ 08 апреля 2020

В настоящее время я работаю над университетским проектом по реализации простых алгоритмов графов в java (https://en.wikipedia.org/wiki/Graph_ (discrete_matmatics) ), и я изо всех сил пытаюсь найти простое решение для экспорта моих созданных графов в файл изображения (т.е. .png)

Я уже смотрел на такие инструменты, как GraphViz и GraphStream, но они, похоже, больше сосредоточены на визуализации своего собственного кода для создания графиков.

Кто-нибудь знает о простая библиотека или, может быть, даже внешний инструмент, который может интерпретировать мой сгенерированный вывод в файл изображения? Если возможно, что-то легкое и простое в реализации.

[Мой код] ---> [Вывод] ---> [То, что я ищу] ---> [Файл изображения]

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Ваши требования сформулированы слабо, но вот некоторые ответы:

  • Если вы хотите «в поисках» разместить оба узла и ребра, то ответ выше работает
  • Если вы хотите разместить узлы самостоятельно, Graphviz поддерживает это - поищите в FAQ «уже есть все координаты для узлов». dot -Tdot yourinputfile даст пример вывода, который вам нужно создать. Вы можете пропустить pos по краям.
  • Если вы хотите разместить узлы и ребра, см. Выше, но добавьте pos по краям и используйте neato -n2 (ребра всегда являются сплайнами, но прямые ребра легко рассчитать)
    • Разве java не содержит графических процедур, которые вы можете использовать?
  • Если вы хотите расположить узлы и ребра, но вам не нравится решение graphviz, попробуйте dpi c (https://ece.uwaterloo.ca/~aplevich/dpic/). Это немного ниже и дает вам больше контроля

Удачи

0 голосов
/ 08 апреля 2020

Если вы генерируете вывод на языке Graphviz Dot, вы можете визуализировать его с помощью dotty и экспортировать в PNG или другие форматы изображений с помощью программы dot. Язык Dot очень прост, например, вот ориентированный граф с 3-мя узлами, составляющими цикл, и собственным ребром в третьем узле.

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

Вот как он отображается в dotty:

enter image description here

...