2015-07-21 131 views
0

有沒有方法根據igraph中的節點屬性權衡佈局?換句話說,如何獲得共享相同特徵(但它們之間沒有邊緣)的節點更緊密地聚集在一起?igraph:按節點佈局屬性

儘管許多佈局函數可以考慮邊緣權重,但我希望彼此更接近的節點之間沒有邊緣。這種情況的一個例子是,如果圖形是雙向的。使用諸如fruchterman.reingold之類的佈局不太有用,因爲兩種不同類型的頂點是穿插的。但是,我不希望它與layout.bipartite選項一樣極端,因爲當有很多頂點時它會相當混亂。我所希望的是在這兩者之間有一個佈局,使同一類型的頂點位於一側,並根據某些屬性進行聚類,並在兩種類型之間建立邊界。

任何想法或建議將不勝感激。謝謝!

+0

你可以試試這個技巧:在你想要吸引對方的每對頂點之間創建額外的額外邊。然後嘗試爲新邊緣找到相對於原始邊緣的「最佳」邊緣權重。 –

+0

請參閱下面的評論 – iemnar

回答

0

igraph佈局只是2列N行的矩陣,因此只要兩個圖共享相同數量的節點,您就可以輕鬆地將一個佈局與另一個圖重複使用。您可以在此處使用此方法:創建一個圖表,您可以在其中連接要彼此靠近的節點,使用此圖表計算佈局,然後用您計算的佈局繪製原始圖形。

+0

謝謝你的迴應,我實際上已經想到了這兩個解決方案,只是不確定是否有更直接的方法。我會給這兩種方法一試,然後發佈! – iemnar

+0

我試過了兩種方法,一種比另一種在不同情況下更好。另一種方法是針對每種類型的節點分別製作佈局,使用merge_coord,並使用合併佈局繪製二分圖。 – iemnar