Уважаемые потенциальные помощники,
Я имею дело с двухрежимной сетью в R, используя пакет igraph.Узлами являются страны и международные организации.Я хочу построить сеть с вершинами, представляющими страны, которые заполняются или заменяются флагами стран.После поиска по форуму я нашел здесь флаги: https://www.free -country-flags.com / flag_pack.php? Id = 1 .К сожалению, я не смог найти способ сказать R, что он должен использовать эти png-картинки в качестве вершин страны.Я нашел кое-что очень близкое здесь: R: Создание графиков, где узлами являются изображения Принятый ответ показывает, как заменить все вершины сети одним png-изображением.Тем не менее, я не нашел, как сказать R заменить только один тип вершин и заменить этот тип не только одной картинкой, но и каждой вершиной своей собственной картинкой.
Основано на моих исследованияхдо сих пор моя сеть выглядит так:
library(igraph)
library(png)
affiliation_matrix <- matrix(c(
1,0,1,0,
1,1,0,0,
1,1,1,1,
1,0,1,1,
1,1,0,1)
,nrow=5
,ncol=4
,byrow=TRUE
)
dimnames(affiliation_matrix) <- list(
c("Sweden", "Italy", "Germany", "France", "Spain"),
c("Organization_1", "Organization_2", "Organization_3", "Organization_4")
)
tmn <- graph.incidence(affiliation_matrix)
set.seed(1)
L <- layout.fruchterman.reingold(tmn)
V(tmn)$color <- ifelse(V(tmn)$type, "lightblue", "salmon")
V(tmn)$shape <- ifelse(V(tmn)$type, "circle", "square")
plot(tmn, layout = L)
График выглядит примерно так:
https://i.stack.imgur.com/M72ZB.png
Теперь я хочу загрузить флагии использовать их.Но я могу сделать это только для одного флага:
FR <- readPNG("C:/flags_style1_medium/France.png",
native = FALSE, info = FALSE)
# Rescale the layout to -1 to 1
L[,1]=(L[,1]-min(L[,1]))/(max(L[,1])-min(L[,1]))*2-1
L[,2]=(L[,2]-min(L[,2]))/(max(L[,2])-min(L[,2]))*2-1
# Plot:
plot(tmn,layout=L,vertex.size=0,vertex.frame.color="#00000000",vertex.label="")
# Set images:
apply(L,1,function(x)rasterImage(FR,x[1]-0.1,x[2]-0.1,x[1]+0.1,x[2]+0.1))
Тогда график выглядит так:
https://i.stack.imgur.com/quoYe.png
Итак, каждая вершина теперь представленаФлаг Франции, что не то, что я хочу, очевидно.
Буду очень признателен за совет.