2016-11-21 209 views
0

我目前使用下面的腳本來創建中介中心一個情節:[R的igraph:縮放節點大小

plot(g, 
    rescale = FALSE, 
    edge.color= edge_color, 
    edge.width=E(g)$Weight*0.5, 
    vertex.size= degree(g)*0.5, 
    main="Degree Centrality" 
) 

正如你所看到的,我目前使用的是簡單的乘數調整vertex.size。由於有些節點非常大,有些看起來太小,所以我想要設置一個最小和最大尺寸的範圍。當然,這個範圍應該考慮程度(g)。

這是否有可能?

注:與scale (degree(g), 5, 15)或類似的嘗試沒有工作: 「錯誤在符號(X = COORDS [1],Y = COORDS [2],BG = vertex.color,: 無效符號參數」

回答

3

重新調整數x,用的域(A,b)你需要做一個縮放功能就像一個範圍(C,d)的:

rescale = function(x,a,b,c,d){c + (x-a)/(b-a)*(d-c)} 

所以,那麼,如果你有一個從程度大小0到200,並希望您的頂點大小範圍爲1到5個單位,請指定頂點大小:

rescale(degree(g), 0, 200, 1, 5) 

這只是一個簡單的線性轉換 - 您可能想要更好的視覺效果非線性。

你可能會(在scales包像rescale功能)的地方找到一個包rescale功能,但它不是什麼scale呢!

+0

這有幫助,謝謝! – Rnaldinho