Как автоматически нарисовать график?

Как автоматически нарисовать график?

Существует ли простой пакет, в который я могу ввести абстрактный график, и он вернет рисунок?

Ааналогичный вопросбыл задан в 2010 году, на него не было получено никаких ответов, относящихся к моему вопросу. Я не хочу сложного кода, просто передайте список ребер графа и получите любой рисунок. (Конечно, несколько дополнительных параметров приветствуются.) Это уже реализовано во многих языках программирования, поэтому я полагаю, что это также должно быть доступно в LaTeX.

решение1

Есть как минимум два способа:

  1. наиболее гибкий (и тот, который я рекомендую) — это использованиеПГФ3/ТикЗАвтоматические возможности макета доступны, если у вас есть последняя версия пакета (версия 3.0.0 и выше) и если вы используете luatex/ lualatexдля компиляции. См. руководство PGF, там есть глава, посвященная этому. Преимущество в том, что вы можете использовать всю мощь TikZ для стилизации ваших узлов/ребр, и это будет плавно сочетаться с остальной частью документа. Вы можете использовать (почти) произвольный код TeX для меток/содержимого узлов и стилей TikZ. Недостатком может быть производительность, но вы можете смягчить это, используя библиотеку external(см. руководство).

    Пример из руководства:

    \tikz [>=spaced stealth’]
    \graph [layered layout, components go right top aligned, nodes=draw, edges=rounded corners]
    {
        first root -> {1 -> {2, 3, 7} -> {4, 5}, 6 }, 4 -- 5;
        second root -> x -> {a -> {u,v}, b, c -> d -> {w,z} };
        third root -> child -> grandchild -> youngster -> third root;
    };
    

    пример

  2. используйте graphviz для создания макета, а затем используйтеdot2texПреимущество в том, что вы по-прежнему получаете те же шрифты, что и в основном документе, можете использовать математику и можете скомпилировать график один раз и не делать макет при каждой компиляции документа.

    Есть способы автоматизировать последнее с помощью пакета LaTeX dot2texi. Не забудьте запустить pdflatexс -shell-escapeопцией, чтобы это сработало: dot2texiнужно будет вызвать внешний dot2texинструмент, который нужно установить (зависит от python) вместе с graphviz. В последних версиях у вас есть возможность сгенерировать код TikZ и указать пользовательские стили TikZ для узлов/ребер. Цитата из документации:

    Вывод Graphviz и dot2tex не идеален. Иногда требуется ручная корректировка, чтобы получить правильные результаты для использования в публикации. Для окончательной и косметической корректировки часто проще отредактировать сгенерированный код, чем взламывать исходный dot. Это особенно актуально при использовании формата вывода tikz.

Связанный контент