ग्राफ संरेखण

Sep 20 2020

मैं टिक्ज़ के लिए नया हूँ और कुछ अभ्यास कर रहा हूँ। मुझे पुस्तक " प्रोबेबिलिस्टिक ग्राफिकल मॉडल्स " में एक छोटे से बायेसियन नेटवर्क का एक उदाहरण मिला और मुझे लगा कि मैं आकर्षित करने की कोशिश करूंगा। graphsसबसे अच्छा विकल्प जहां नोड उन्हें जोड़ने के द्वारा परिभाषित कर रहे हैं लग रहा था लेकिन मॉड्यूल कुछ हद तक अजीब तरह से सभी नोड्स देता है। ये रही तस्वीर

और यहाँ कोड है:

\documentclass{standalone}
\usepackage[utf8]{inputenc}
%\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, graphs, matrix, shapes.geometric}

\begin{document}
\begin{tikzpicture}
        \graph[grow down, grow down sep=3mm, branch right=2.5cm,
        edges={>=Latex, semithick, color=black},
        nodes={draw, ellipse, fill=black!10, very thick,
        minimum width=2cm, minimum height=10mm}] {
        GC -> {
            BC -!- GH -> {
                BH,
                GB -> BB,
                GL -> BL,
                GN -> BN,
            },
            GM -> {
                GB,
                GL,
                GN,
                BM,
            },
            GS -> BS,
        },
        GJ -> {
            GM,
            GS,
            BJ,
        },
    };
    \end{tikzpicture}
\end{document}

मुझे लगता है कि मैं समझता हूं कि क्या हो रहा है। नोड GJको केवल पेड़ के बाकी हिस्सों के लिए जगह बनाने के अधिकार को धकेल दिया जाता है। मैं सोच रहा था कि क्या प्रत्येक स्तर को क्षैतिज रूप से संरेखित करने के साथ ग्राफ को अधिक कॉम्पैक्ट बनाने का एक तरीका है। इसके अलावा, मैं सोच रहा था कि ग्राफ में तर्क को व्यक्त करने के लिए मैं (क्षैतिज, लंबवत) कुछ नोड समूहों को कैसे स्थानांतरित कर सकता हूं; जी (एक्स) एस एक ही स्तर में होना चाहिए और बी (एक्स) एस नीचे होना चाहिए।

उचित ग्राफ लेआउट नीचे है और मैं के संयोजन का इस्तेमाल किया matrixऔर graphsहै, जो मैं पूरी तरह से खुश है क्योंकि यह हार की तरह की उपयोगिता नहीं कर रहा हूँ graphsमॉड्यूल में ही।

धन्यवाद।

जवाब

1 Evion Sep 20 2020 at 21:27

Layered layoutविकल्प पास करें , क्या आप नोड्स के लिए गोलाकार आकृति नहीं बनाएंगे ?, पैकेजों पर ध्यान दें और Pualfmanual / tikz में अनुशंसित Lualatex के साथ संकलित करें। :)

\documentclass{standalone}
\usepackage[utf8]{inputenc}
%\usepackage[margin=1cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{arrows.meta, graphs,graphdrawing, shapes.geometric }
\usegdlibrary{layered}
\begin{document}

%Compile with luaLatex
\begin{tikzpicture}
   
        \graph[
          layered layout, 
          sibling distance =3cm, 
          level distance =3cm, 
          edges={>=Latex, semithick, color=black},
          nodes={draw, ellipse, fill=black!10, very thick,
         minimum width=2cm, minimum height=10mm}
         ]
        {
        GC -> {
            BC -!- GH -> {
                BH,
                GB -> BB,
                GL -> BL,
                GN -> BN,
            },
            GM -> {
                GB,
                GL,
                GN,
                BM,
            },
            GS -> BS,
        },
        GJ -> {
            GM,
            GS,
            BJ,
        },
    };
    \end{tikzpicture}
\end{document}