【问题标题】:igraph edges colored according to attribute disappear根据属性着色的 igraph 边缘消失
【发布时间】:2019-05-08 13:53:35
【问题描述】:

我想根据另一个边缘属性在 igraph 中为网络的边缘着色。

这是我所做的:

vector <- c("a","b","b","d","b","c","c","a")
field <- c("friend","friend","good friend","archenemy")

g <- graph(vector, directed = FALSE)
E(g)$status <- field

library(RColorBrewer)
color = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = 
T)]
n <- length(unique(field))

col=sample(color, n)
sec=unique(field)
coloring <- as.list(setNames(col,sec))

E(g)$color <- coloring[E(g)$status]

这里我得到一个错误,或者根本没有边缘。

plot(g,edge.color=E(g)$color)

【问题讨论】:

  • 不要将as.listcoloring 一起使用。只需使用coloring &lt;- setNames(col,sec),然后您就可以使用plot(g)

标签: r colors network-programming igraph


【解决方案1】:

这对我有用。您的原始代码列出了g 中的颜色。检查E(g)$color

library(igraph)
library(RColorBrewer)
color = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)]

vector <- c("a","b","b","d","b","c","c","a")
field <- c("friend","friend","good friend","archenemy")
####
g <- graph(vector, directed = FALSE)
E(g)$status <- field

n <- length(unique(field))
col=sample(color, n)

coloring <- col[factor(field)]
E(g)$color <- coloring

plot(g)

【讨论】:

    猜你喜欢
    • 2016-11-29
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 2019-06-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多