أكثر

كيفية استخدام Igraph مع المنشور لـ R؟

كيفية استخدام Igraph مع المنشور لـ R؟


أحاول رسم رسم بياني في الخريطة باستخدام R.

الشفرة :

df <-data.frame ("from" = c ("Lyon"، "Toulouse"، "Paris"، "Marseille")، "to" = c ("Paris"، "Paris"، "Marseille"، "Toulouse ")) meta <- data.frame (" name "= c (" Lyon "،" Toulouse "،" Paris "،" Marseille ")،" lon "= c (-4.850000، 1.444209، 2.352222، 5.36978)،" lat "= c (45.750000، 43.604652، 48.856614، 43.296482)) g <- graph.data.frame (df ، موجه = FALSE ، الرؤوس = meta) lo <- layout.norm (as.matrix (meta [، 2: 3 ])) plot.igraph (g، layout = lo، vertex.size = 60، vertex.color = "red"، vertex.frame.color = "white"، vertex.label.color = "white"، vertex.label .family = "sans"، edge.width = 2، edge.color = "black")

لكني لا أجد طريقة تسمح لي بعرضها على الخريطة باستخدام المنشور ، شخص لديه فكرة من فضلك؟


فيما يلي إحدى الطرق الممكنة ، عن طريق تحويل الرسم البياني أولاً إلى كائن مكاني واستخدام الرسم البياني معمنشورصفقة.

مكتبة (sp) gg <- get.data.frame (g، "both") vert <- gg $ الرؤوس إحداثيات (vert) <- ~ lon + lat edges <- gg $ edges edges <- lapply (1: nrow ( edges) ، الوظيفة (i) {مثل (rbind (vert [vert [name $ == edges [i، "from"]،]، vert [vert $ name == edges [i، "to"]،])، " SpatialLines ")}) لـ (i in seq_along (edges)) {edges [[i]] <- spChFIDs (edges [[i]]، as.character (i))} الحواف <- do.call (rbind، edges ) نشرة المكتبة (النشرة) (vert)٪>٪ addTiles ()٪>٪ addMarkers (data = vert)٪>٪ addPolylines (data = edges)

قد ترغب في تحسين التصميم.