Форма вершины графика в iGraph в R - PullRequest
1 голос
/ 17 февраля 2012

Привет,

У меня вопрос, который должен быть простым. Я новичок в использовании iGraph и пытаюсь построить график с помощью tklplot. График имеет следующие характеристики:

Vertices: 856 Edges: 675 Directed: TRUE

Я просто хочу сформировать различные этнические группы, которые, конечно, являются атрибутами V(g)$ethnic вершин на графике.
У меня была проблема с square, но в ней была ошибка.
В линиях вниз я просто становлюсь вершинами в форме круга. Моя идея состоит в том, чтобы дифференцировать вершины с атрибутом V(g)$ethnic, если я вспоминаю его, проблем нет, но вывод графика неверен, и R

не сообщает о каких-либо серьезных проблемах.

следующим образом

  V(g)$color <- "green"
  E(g)$color <- "black"
  V(g)$nodesize=degree(g)*0.5
  V(g)[V(g)$ethnic=="Mestizo"]$shape <- "rectangle"
  V(g)[V(g)$ethnic=="Saraguro"]$shape <- "circle"
  tkplot(g, layout=layout.kamada.kawai, edge.color=E(g)$color, 
         edge.arrow.size=0.3, vertex.label.dist=0.3, vertex.color=V(g)$color, 
         vertex.size=V(g)$nodesize, vertex.shape=V(g)$shape)

привет
Владимир

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Согласно документации по функции igraph.vertex.shapes формы не поддерживаются в tkplot, а только в plot.igraph:

Обратите внимание, что текущая реализация формы вершины является экспериментальной и это может измениться в будущем. В настоящее время формы вершин реализованы только для plot.igraph.

0 голосов
/ 17 февраля 2012

Что именно не правильно изображает? Индексы для iGraph смещены на единицу. Попробуйте это и посмотрите, если это имеет значение:

wc1 <- which(V(g)$ethnic=="Mestizo") - 1
wc2 <- which(V(g)$ethnic=="Saraguro") - 1
V(g)$shape[wc1] <- "rectangle"
V(g)$shape[wc2] <- "circle"
...