2016-06-10 8 views
1

Ich versuche, die Scheitelpunktkoordinaten eines iigraph-Plots manuell festzulegen. Die Koordinaten repräsentieren Breiten- und Längengrade. Ich erhalte die Fehlermeldung:Grafikfehler Grafiklayoutfehler: falsche Anzahl von Indizes auf Matrix

Error in ec[, 3:4] <- t(sapply(seq(length = nrow(el)), function(x) { : 
incorrect number of subscripts on matrix 

Hier sind die Objekte/Variablen Ich verwende:

Graph objekt-

> g_mat_cut 
IGRAPH UNW- 28 88 -- 
+ attr: name (v/c), shape (v/c), color (v/c), weight (e/n) 
+ edges (vertex names): 
[1] 010C10AB53--010C10CA44 010C10AB53--010C10D28B 010C10AB53--010C10D28E 
[4] 010C10AB53--010C10EA1E 010C10AB53--010C1108EB 010C10AB53--010C11169A 
[7] 010C10AB53--010C112145 010C10AB53--010C117822 010C10AB53--010C117E53 
[10] 010C10AB53--010C1180A0 010C10AB53--010C11922B 010C10AB53--010C11B911 
[13] 010C10AB53--010C11BBA6 010C10AB53--010C11BC8D 010C10AB53--010C11BEB7 
[16] 010C10C3A5--010C116DC1 010C10CA44--010C10D28B 010C10CA44--010C114E81 
[19] 010C10CA44--010C11B911 010C10CA44--010C11BBA6 010C10CBBD--010C117822 
[22] 010C10D28B--010C10D28E 010C10D28B--010C1108EB 010C10D28B--010C11169A 
+ ... omitted several edges 

mit der folgenden Vertex-Attribute -

vertex.attributes(g_mat_cut) 
$name 
[1] "010C10AB53" "010C10BEA5" "010C10C3A5" "010C10CA44" "010C10CBBD" 
[6] "010C10D28B" "010C10D28E" "010C10EA1E" "010C10EFE8" "010C11059F" 
[11] "010C1108EB" "010C1111B5" "010C111428" "010C11169A" "010C112145" 
[16] "010C114E81" "010C115391" "010C116DC1" "010C117822" "010C117E53" 
[21] "010C1180A0" "010C11922B" "010C119C7E" "010C11A61D" "010C11B911" 
[26] "010C11BBA6" "010C11BC8D" "010C11BEB7" 

$shape 
[1] "circle" "square" "square" "square" "square" "square" "square" "square" 
[9] "circle" "square" "square" "square" "square" "square" "square" "circle" 
[17] "circle" "circle" "circle" "circle" "square" "square" "square" "square" 
[25] "square" "circle" "square" "circle" 

$color 
[1] "#99D594" "#3288BD" "#3288BD" "#3288BD" "#99D594" "#99D594" "#3288BD" 
[8] "#3288BD" "#D53E4F" "#D53E4F" "#99D594" "#3288BD" "#3288BD" "#3288BD" 
[15] "#3288BD" "#3288BD" "#D53E4F" "#D53E4F" "#3288BD" "#3288BD" "#3288BD" 
[22] "#99D594" "#3288BD" "#99D594" "#3288BD" "#3288BD" "#FEE08B" "#FEE08B" 

Raumkoordinaten für Positionen von Vertices:

coords 
      [,1]  [,2] 
[1,] 50.19954 -5.169506 
[2,] 50.19866 -5.168653 
[3,] 50.19853 -5.169905 
[4,] 50.19856 -5.168397 
[5,] 50.19954 -5.169506 
[6,] 50.19794 -5.168535 
[7,] 50.19833 -5.169241 
[8,] 50.19897 -5.169436 
[9,] 50.19915 -5.169564 
[10,] 50.19908 -5.169429 
[11,] 50.19878 -5.169403 
[12,] 50.19857 -5.170018 
[13,] 50.19859 -5.168570 
[14,] 50.19847 -5.169863 
[15,] 50.19982 -5.171222 
[16,] 50.19866 -5.168653 
[17,] 50.19844 -5.168694 
[18,] 50.19794 -5.168535 
[19,] 50.19833 -5.169241 
[20,] 50.19781 -5.168733 
[21,] 50.19855 -5.168908 
[22,] 50.19915 -5.169564 
[23,] 50.20034 -5.170551 
[24,] 50.19878 -5.169697 
[25,] 50.19882 -5.170664 
[26,] 50.19982 -5.171222 
[27,] 50.19838 -5.170642 
[28,] 50.19841 -5.169932 

str(coords) 
num [1:28, 1:2] 50.2 50.2 50.2 50.2 50.2 ... 

attempt at plotting: 

    plot(g_mat_cut,layout=coords,vertex.size=4,rescale=FALSE,xlim=c(50.19,50.21),ylim=c(-5.16,-5.18)) 
Error in ec[, 3:4] <- t(sapply(seq(length = nrow(el)), function(x) { : 
incorrect number of subscripts on matrix 

Antwort

0

Ich kann deine Frage nicht wirklich beantworten, aber vielleicht können dir die Dinge, die ich ausprobiert habe, helfen.

Ich habe das gleiche Problem, da ich versuche, verschiedene Vertexformen als Kreis für einige Vertices zu haben. Es ist in Ordnung, verschiedene Eckenformen zu haben und keine Layoutmatrix anzugeben. Und alle vertex.shape = "circle" und die Angabe einer Layout-Matrix funktioniert auch. Einstellen vertex.shape = "square" und versucht, mit einem Layout-Matrix mit dieser plotten - nicht reproduzierbar - line:

plot(gBase, layout=matrix(c(as.numeric(V(gBase)$lon), as.numeric(V(gBase)$lat)), ncol=2), vertex.label=NA, vertex.shape = "square", vertex.size = as.numeric(V(gBase)$size), vertex.size2=as.numeric(V(gBase)$size2))

gibt diesen Fehler:

Error in y1 - y2 : non-numeric argument to binary operator

Wie Sie sehen können, ich versuche schon Kraft Die Größen und das Layout müssen numerisch sein (obwohl sie von Anfang an als numerische Werte definiert sind). Sie können auch vertex.shape = "circle" durch vertex.shape = "rectangle" ersetzen, so dass .size2 eigentlich Sinn macht. Der Fehler ist der gleiche.

Daher nehme ich an, dass die Probleme mit der Positionierung Eckpunkte der Form "Quadrat" oder "Rechteck" sind.

In der documentation gibt es nur ein Beispiel für Plotten mit Formen und ein definiertes Layout, das mir nicht wirklich geholfen hat.

Verwandte Themen