Пакет igraph в r: как пометить ребра для ориентированного ациклического графа - PullRequest
0 голосов
/ 28 мая 2019

Я очень плохо знаком с r и программированием, поэтому мои знания ограничены. Я использую пакет igraph и tkplot для создания и представления ориентированного ациклического графа. Мне удалось сделать график, и я пытаюсь выяснить, как добавить метки к каждому ребру. Моя цель - сделать небольшую аннотацию на линии между каждой вершиной / вершиной, объясняющую их взаимосвязь.

Я попытался вставить текст, как показано ниже:

text(-1, 0,"[1, 2, 3]")
text(0, 1,"[3, 5, 6]")

Однако этот текст не переносится из r с tkplot, и его трудно выровнять по линиям между вершинами.

этот код дал мне точный график, который я хочу, за вычетом текста между вершинами.


g <- graph.formula("ATB" -+ "Microbiome",
                   "Microbiome" -+ "Inflammation A" -+ "IO Response",
                   "Microbiome" -+ "Inflammation B" -+ "IO Response",
                   "Microbiome" -+ "IO Response",
                   "ATB" -+ "IO Response",
                   "Corticosteroids" -+ "IO Response",
                   "Corticosteroids" -+ "Microbiome",
                   "PPI" -+ "IO Response",
                   "PPI" -+ "Microbiome",
                   "H2B" -+ "IO Response",
                   "H2B" -+ "Microbiome",
                   "NSAIDs" -+ "Microbiome",
                   "NSAIDs" -+ "Inflammation B",
                   "NSAIDs" -+ "IO Response",
                   "Corticosteroids" -+ "Inflammation A",
                      simplify = TRUE)

plot.igraph(g, size = 90)

tkplot(g)

1 Ответ

1 голос
/ 29 мая 2019

Вы можете добавить метки к краям, назначив атрибут «метка» каждому краю.Вы не говорите, что хотите в качестве меток, поэтому я произвольно назначаю буквенный код каждому ребру.Кроме того, ваш оператор заговора включает параметр «размер».Это вызывает ошибку, поэтому я оставил ее.Вы имели в виду "vertex.size"?

E(g)$label = LETTERS[1:ecount(g)]
plot(g)

graph with labeled edges

...