2016-06-16 5 views
1

Ich habe eine Matrix B und einen Vektor A (die Matrix hat Wert 0 oder 1; der Vektor hat Wert von 0 bis 1 kontinuierlich; a,b,c sind 3 Attribute):R Netzwerk - Farbe-Code die Knoten auf einem separaten Vektor

B = matrix(c(0,1,0,1,0,1,1,1,0),nrow=3,ncol=3) 
rownames(B)<-c("a", "b", "c") 

A = c(0.23,0.56,0.78) 

ich habe versucht, ein Netzwerk zu schaffen, mit den Knoten Gradienten auf dem Wert in Vektor eine farbige Basis (sagen wir mal die Skala von weiß bis schwarz ist, als das Attribut c mit dem Wert 0,78 ist dunkler als a mit Wert 0,23). Ich habe diese Zeilen ausprobiert, aber sie können die Knoten nicht farbcodieren.

require(Rgraphviz) 
am.graph<-new("graphAM", adjMat=B, edgemode="directed") 
plot(am.graph, attrs = list(node = list(fillcolor = A), 
         edge = list(arrowsize=0.5))) 

Wirklich zu schätzen jede Hilfe. Ich bin neu in R so wirklich leid, wenn meine Erklärung nicht klar ist

Antwort

2

Sie Paket IGRAPH verwenden:

library(igraph) 
B = matrix(c(0,1,0,1,0,1,1,1,0),nrow=3,ncol=3) 
rownames(B)<-c("a", "b", "c") 
A = c(0.23,0.56,0.78)*100 
g<- graph.adjacency(B) 

fine = 500 # this will adjust the resolving power. 
palette = colorRampPalette(c('green','darkgreen')) 
#this gives you the colors you want for every point 
graphCol = palette(fine)[as.numeric(cut(A,breaks = fine))] 
plot(g, vertex.size=A, vertex.color = graphCol) 

Wenn Sie nicht wollen, Scheitel in verschiedenen Größen, nur auslassen ‚vertex.size = A 'in deiner Handlung!

+0

Danke Ale. Entschuldigung, ich war nicht klar in meiner Frage. Ich möchte Farbverlaufsfarben, nicht nur 3 verschiedene Farben, da der reale Vektor in meinem Datensatz viele Werte hat. Irgendwelche Vorschläge? – Square9627

+0

Ich habe meine Antwort geändert, jetzt sollte es funktionieren! :) – Ale

Verwandte Themen