2016-11-21 2 views
0

Ich verwende derzeit folgende Skript ein Grundstück für Between Zentralität zu erstellen:R IGRAPH: Skalierung Knotengröße

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

Wie Sie sehen können, habe ich zur Zeit einen einfachen Multiplikator verwenden vertex.size einzustellen. Da einige Knoten wirklich groß und einige zu klein sind, möchte ich einen Bereich mit einer minimalen und maximalen Größe festlegen. Natürlich sollte dieser Bereich Grad (g) berücksichtigen.

Ist das irgendwie möglich?

Anmerkung: Die Versuche mit scale (degree(g), 5, 15) oder ähnliches nicht funktioniert hat: "Fehler in Symbolen (x = Koord [1], y = Koordinaten [2], bg = vertex.color,: ungültige Symbol Parameter"

Antwort

3

rückzuskalieren Zahlen, x, mit einer Domäne von (a, b) zu einem Bereich von (c, d) Sie eine Reskalierung Funktion wie machen müssen:

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

Also dann, wenn Sie Grad Größen haben aus 0 bis 200, und möchten, dass Ihre Scheitelpunktgrößen zwischen 1 und 5 Einheiten liegen, geben Sie die Scheitelpunktgröße mit:

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

Dies ist nur eine einfache lineare Transformation - Sie möchten vielleicht etwas nichtlineare für bessere visuelle Effekte.

Sie könnten eine rescale Funktion in einem Paket irgendwo finden (wie die rescale Funktion im scales Paket), aber es ist nicht, was scale tun!

+0

Das hat geholfen, danke! – Rnaldinho

Verwandte Themen