Como desenhar um gráfico automaticamente?

Como desenhar um gráfico automaticamente?

Existe um pacote simples para o qual eu possa inserir um gráfico abstrato e retornar um desenho?

Apergunta semelhantefoi perguntado em 2010, não recebeu nenhuma resposta relevante para a minha pergunta. Não quero nenhum código complicado, apenas forneça a lista de arestas do gráfico e obtenha qualquer desenho. (É claro que alguns parâmetros opcionais são bem-vindos.) Isso já está implementado em muitas linguagens de programação, então suponho que também deva estar disponível em LaTeX.

Responder1

Existem pelo menos duas maneiras:

  1. o mais flexível (e o que eu recomendo) é usarPGF3/TikZOs recursos de layout automático estão disponíveis se você tiver uma versão recente do pacote (versão 3.0.0 e superior) e se você usar luatex/ lualatexpara compilar. Veja o manual do PGF, tem um capítulo dedicado a isso. A vantagem é que você pode usar todo o poder do TikZ para estilizar seus nós/bordas e combinar perfeitamente com o resto do documento. Você pode usar código TeX (quase) arbitrário para rótulos/conteúdo de nó e estilos TikZ. A desvantagem pode ser o desempenho, mas você pode aliviar isso usando a externalbiblioteca (consulte o manual).

    Um exemplo do manual:

    \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;
    };
    

    exemplo

  2. use o graphviz para gerar o layout e depois usedot2tex. A vantagem é que você ainda obtém as mesmas fontes do documento principal, pode usar matemática e compilar o gráfico uma vez e evitar fazer o layout a cada compilação do documento.

    Existem maneiras de automatizar este último usando o pacote LaTeX dot2texi. Lembre-se de executar pdflatexcom a -shell-escapeopção para fazer isso funcionar: dot2texiserá necessário invocar a dot2texferramenta externa que precisa ser instalada (depende do python) junto com graphviz. Com versões recentes, você tem a opção de gerar código TikZ e especificar estilos TikZ personalizados para nós/arestas. Uma citação dos documentos:

    A saída do Graphviz e dot2tex não é perfeita. Às vezes, são necessários ajustes manuais para obter os resultados corretos para uso em uma publicação. Para ajustes finais e cosméticos, muitas vezes é mais fácil editar o código gerado do que hackear a fonte pontual. Isto é especialmente verdadeiro ao usar o formato de saída tikz.

informação relacionada