मैं वर्तमान में जावा में एक ग्राफ पुस्तकालय लिख रहा हूं, और मुझे कुछ ग्राफों को देखने के लिए एक उपकरण चाहिए। मैंने ग्राफ-विज़ की खोज की, जो कि एक महान होता है - हालांकि छोटी गाड़ी - ऐसा करने का तरीका।ग्राफविज़ (xdot): रिकर्सिव नोड्स कैसे बनाएं?
मेरे मॉडल में, रेखांकननोड्स और किनारों से बनी हैं। हर नोडबंदरगाहों (आई/ओ/आईओ) और किनारों लिंक उन बंदरगाहों एक साथ की एक निश्चित संख्या है। कुछ विशेष नोड्स को ग्राफ़ नोड्स कहा जाता है और ग्राफ़ एम्बेड किया जाता है। बंदरगाहों इन GraphNodes की कुछ बंदरगाहों आंतरिक नोड्स की पर मैप किए जाते।
मैं कई प्रतिनिधित्व प्रदान करना चाहता हूं। उनमें से पहले, जिसके साथ मैं संतुष्ट हूं, इस प्रकार है: http://i.stack.imgur.com/ujU71.png
इनपुट बंदरगाहों हरे रंग में प्रतिनिधित्व कर रहे हैं, लाल रंग में उत्पादन वाले, और नीले रंग में इनपुट-आउटपुट वाले।
इस प्रतिनिधित्व में, GraphNodes का विस्तार नहीं कर रहे हैं और बस के रूप में सरल नोड्स प्रदर्शित होते हैं। दूसरे संस्करण में, मैं कुछ चित्र बनाना चाहता हूं जो निम्न चित्र जैसा दिखता है: http://i.stack.imgur.com/Cx624.png
समस्या यह है कि मैं निश्चित क्षेत्रों के साथ उप-ग्राफ (क्लस्टर) बनाने का प्रबंधन नहीं कर सकता (ऐसा लगता है कि ऐसा नहीं है मुमकिन)। मैंने कोशिश की एक और समाधान एक ग्राफ को एक नोड में एम्बेड करना था। http://i.stack.imgur.com/E9jQ1.png
अंत में, सबसे अच्छा समाधान के साथ आ रहा है कर सकते हैं:
digraph graph0
{
node1
[
label =
<
<table border="0" cellspacing="0">
<tr>
<td cellpadding="0">
<table border="0" cellspacing="0">
<tr>
<td bgcolor="palegreen" border="1" port="port2">port2</td>
<td bgcolor="palegreen" border="1" port="port3">port3</td>
</tr>
</table>
</td>
</tr>
<tr>
<td cellpadding="0">
<table border="0" cellspacing="0">
<tr>
<td cellpadding="0">
<table border="0" cellspacing="0">
<tr>
<td bgcolor="skyblue" border="1" port="port5">port5</td>
</tr>
</table>
</td>
<td bgcolor="peachpuff" border="1">
subgraph clusterTest
{
nodeTest
}
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td cellpadding="0">
<table border="0" cellspacing="0">
<tr>
<td bgcolor="lightpink" border="1" port="port4">port4</td>
</tr>
</table>
</td>
</tr>
</table>
>
style = "invisible"
]
}
पिछले कोड निम्नलिखित ग्राफ बनाता है: हालांकि, एक एचटीएमएल लेबल के <td> </td>
भाग में कुछ कोड डालने कोड का मूल्यांकन नहीं करता निम्नलिखित: http://i.stack.imgur.com/VzS5g.png
हालांकि मैं इसे से संतुष्ट हैं, क्योंकि GraphNodes 'बंदरगाहों कभी कभी अजीब स्थानों में रखा जाता है कर रहा हूँ।
क्या आप जानते हैं कि मैं लक्ष्य ग्राफ़ लेआउट तक कैसे पहुंच सकता हूं? यदि आवश्यक हो तो कृपया किसी भी अन्य जानकारी के लिए पूछें।
संपादित करें: मैं अभी भी किसी भी समाधान नहीं मिला। इसे संभालने का एक तरीका युक्त क्लस्टर के अंदर दिए गए नोड्स की स्थिति को ठीक करने में सक्षम होना चाहिए, लेकिन ऐसा लगता है कि "डॉट" लेआउट के साथ संभव नहीं है। कोई उपाय ?
मैं इसे अपने गोद में छोड़ रहा हूं, क्योंकि मुझे अभी भागना है। यदि प्रश्न हैं (विवरण) मैं जवाब में जोड़ सकता हूं तो मुझे बताएं ... –
हाय! आपके उत्तर के लिए धन्यवाद, क्षमा करें मैं पहले इसका परीक्षण नहीं कर सका। हालांकि मैं इसे चलाने के लिए प्रबंधन नहीं कर सकता। ऐसा लगता है कि पाइथन रीट्रेविंग विशेषता 'चौड़ाई' पर असफल रहा है। Xdot का कौन सा संस्करण आप इसे देखने के लिए उपयोग करते हैं (मेरा 0.4 है)? या एक और मुलायम? वैसे भी, आपका जवाब मेरे लिए बिल्कुल सही लग रहा है! –
मैंने सीधे ग्राफविज़ के साथ प्रस्तुत किया। डॉट - ग्राफविज़ संस्करण 2.26.3 –