r - 根据属性着色的 igraph 边缘消失
问题描述
我想根据另一个边缘属性在 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)
解决方案
这对我有用。您的原始代码列出了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)
推荐阅读
- javascript - Javascript:如何在对象中使用来自其他 getter 的 getter
- sql - ORA-01031: 在 Oracle 11g 上安装两次权限不足
- javascript - Promise.allSettled typescript 数组推断
- google-app-engine - 在 gcloud 应用引擎 console.log 中显示对象
- c++ - 命名空间和类之间的主要区别是什么?
- flutter - Flutter 中的 FocusNode 'node.ancestors.contains(this)' 错误
- mongodb - MongoDB 中是否保留了更新顺序?
- ruby-on-rails - Rails 复杂模型关联,用户和团队之间共享文档
- html - 按钮的行和列不适合手机屏幕
- list - Netlogo:从字符串读取需要文字值