के लिए DOT
भाषा में GraphViz
, मैं एक निर्भरता आरेख का प्रतिनिधित्व करने की कोशिश कर रहा हूं। मुझे एक कंटेनर के अंदर नोड्स और अन्य नोड्स और / या कंटेनरों पर निर्भर नोड्स और / या कंटेनर बनाने में सक्षम होने की आवश्यकता है।
मैं subgraph
अपने कंटेनरों का प्रतिनिधित्व करने के लिए उपयोग कर रहा हूं । नोड लिंकिंग ठीक काम करता है, लेकिन मैं यह पता नहीं लगा सकता कि सबग्राफ कैसे कनेक्ट किया जाए।
नीचे दिए गए कार्यक्रम को देखते हुए, मुझे कनेक्ट करने cluster_1
और cluster_2
एक तीर के साथ सक्षम होने की आवश्यकता है , लेकिन मैंने जो कुछ भी कोशिश की है वह क्लस्टर को जोड़ने के बजाय नए नोड बनाता है:
digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item 3";
// Both of these create new nodes
cluster_1 -> cluster_2;
"Container A" -> "Container C";
}
fdp
। लिंक किए गए उदाहरण, और दोनों काम के ऊपर एक (उदाहरण में यहां अंतिम पंक्ति में सबग्राफ नाम का उपयोग करने की आवश्यकता है लेबल नहीं और रेखांकन के लिए लाइन की लंबाई शामिल करना अच्छा हो सकता है); यह थोड़ा तंग है)।
fdp
करके और स्रोत से कॉपी / पेस्ट करना उदाहरण के लिए पंक्तियों को सबग्राफ के केंद्र से जोड़ता है, किनारों पर नहीं। यदि आप OmniGraffle में .dot खोलते हैं, तो वे ठीक से जुड़े हुए हैं, neato
और dot
दोनों क्लस्टर के लिए शानदार नोड्स बनाते हैं।