如何自動繪製圖表?

如何自動繪製圖表?

是否有一個簡單的包,我可以輸入一個抽象圖並返回一個繪圖?

A類似的問題2010年被問到時,它沒有收到與我的問題相關的任何答案。我不需要複雜的程式碼,只需給出圖形的邊列表並獲得任何繪圖。 (當然,歡迎使用一些可選參數。)這已經在許多程式語言中實現了,所以我想它也應該在 LaTeX 中可用。

答案1

至少有兩種方法:

  1. 最靈活的(也是我推薦的)是使用PGF3/TikZ如果您有該軟體包的最新版本(版本 3.0.0 及更高版本)並且使用luatex/lualatex進行編譯,則可以使用 的自動佈局功能。請參閱 PGF 手冊,有一章專門介紹這一點。優點是您可以使用 TikZ 的全部功能來設計節點/邊的樣式,並且它將與文件的其餘部分無縫融合。您可以對標籤/節點內容和 TikZ 樣式使用(幾乎)任意 TeX 程式碼。缺點可能是效能,但您可以透過使用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需要與graphviz.在最新版本中,您可以選擇產生 TikZ 程式碼並為節點/邊指定自訂 TikZ 樣式。文件中的引用:

    Graphviz 和 dot2tex 的輸出並不完美。有時需要手動調整才能獲得在出版物中使用的正確結果。對於最終和外觀調整,編輯生成的程式碼通常比破解點源更容易。使用 tikz 輸出格式時尤其如此。

相關內容