2015-09-06 88 views
3

給定一個時間圖(每個邊都有一個時間屬性),我有一個腳本來使用Fruchterman-Reingold佈局繪製圖的演變。我的腳本基於這個例子:Temporal Networks with igraph and R with 20 lines of codemaxdelta相當於igraph 1.0中的Fruchterman-Reingold佈局?

其中一個招數就是開始從上一次快照t-1佈局計算當前snapshopt t佈局,然後用限制的maxdelta節點位移,以便有快照之間的平滑過渡的感覺。這裏是動畫例如:https://vimeo.com/53071346

在1.0的igraph,佈局功能layout.fruchterman.reingold變得layout_with_frmaxdelta參數消失和快照之間的變換是太緊張。

我們如何才能在igraph 1.0中實現相同的效果?

回答

2

正如你注意到的,Fruchterman-萊因戈爾德佈局已經從無到有的igraph 1.0重寫,而maxdelta參數消失的「副作用」(新的實現不支持它)。我不知道新的實施方案是否僅僅因爲沒有時間執行或因爲存在妨礙執行的固有限制而錯失了論點,但無論哪種方式,請在GitHub上提交問題。我無法做出任何承諾,因爲我沒有寫這部分代碼,但可能很快就會重新添加。

與此同時,通過查看source code of the algorithm,似乎溫度參數作爲最大位移的限制因素。您可以嘗試發送最大位移爲start.temp,並將迭代次數設置爲1 - 這將沿X軸和Y軸將位移限制爲start.temp

另一種替代方案是layout.graphopt()函數,該函數似乎支持直接使用max.sa.movement參數限制最大位移。

+0

感謝Tamás,我發現的另一個解決方案是使用所有動畫的一個佈局(最終佈局)。是不是很壯觀,但它完成了工作:) – alberto