r - 在 igraph 或 ggnet2 中绘制仅边缘值高于阈值的网络
问题描述
我需要从对称矩阵 nxn 以图形方式表示一个网络,该网络由从 0 到 1 的边缘值组成(如 0.1、0.22、0.54 等)。我只想代表最强的边缘连接,比如 0.6 以上。
我分享我的代码:
m=as.matrix(matrix3)
g <- graph_from_adjacency_matrix(m, mode = "upper", weighted = T, diag = F)
new_graph <- induced.subgraph(m, E(m)[E(m)$weight %in% c(E(m)$weight > 0.6 )])
ggnet2(new_graph)
这没用。任何建议仅绘制高于 0.6 阈值的连接?
解决方案
library(igraph)
你的数据
x <- read.table(header=T, stringsAsFactors=FALSE, text='id1 id2 id3 id4 id5 id6 id7 id8 id9 id10 id11
id1 1 0.473684 0.578947 0.368421 0.438596 0.438596 0.175439 0.403509 0.403509 0.245614 0.175439
id2 0.473684 1 0.44898 0.236842 0.347826 0.347826 0.157895 0.384615 0.36 0.236842 0.210526
id3 0.578947 0.44898 1 0.22449 0.469388 0.510204 0.244898 0.403846 0.58 0.204082 0.22449
id4 0.368421 0.236842 0.22449 1 0.26087 0.217391 0.24 0.211538 0.24 0.32 0.24
id5 0.438596 0.347826 0.469388 0.26087 1 0.73913 0.282609 0.576923 0.3 0.282609 0.043478
id6 0.438596 0.347826 0.510204 0.217391 0.73913 1 0.304348 0.653846 0.36 0.23913 0.086957
id7 0.175439 0.157895 0.244898 0.24 0.282609 0.304348 1 0.25 0.16 0.217391 0.052632
id8 0.403509 0.384615 0.403846 0.211538 0.576923 0.653846 0.25 1 0.442308 0.211538 0.173077
id9 0.403509 0.36 0.58 0.24 0.3 0.36 0.16 0.442308 1 0.22 0.34
id10 0.245614 0.236842 0.204082 0.32 0.282609 0.23913 0.217391 0.211538 0.22 1 0.217391
id11 0.175439 0.210526 0.22449 0.24 0.043478 0.086957 0.052632 0.173077 0.34 0.217391 0.12')
转换成矩阵
y <- as.matrix(x)
设置图形对象
g <- graph_from_adjacency_matrix(y, mode = "upper", weighted = T, diag = F)
删除低于 0.6 的边
g2 <- delete.edges(g, which(E(g)$weight <0.6))
绘制边缘高于 0.6 的图形
plot(g2)
推荐阅读
- javascript - 如何在点击手风琴时激活相应的图像?
- javascript - 如何在 React Native 中调用另一个函数内部的函数
- javascript - 无法在 node.js 中的模块外部使用 import 语句
- android-viewpager - 如何在 Jetpack Compose 中双向滚动
- logback - Logback - 仅记录消息而不是特定异常的堆栈跟踪
- java - 错误创建名称为通过字段表示的不满足依赖关系的 bean
- jq - jq: combine multi array in dict without permutate
- unity3d - 如何将属性分配给 Unity 中的类?
- postgresql - 过滤文本文件中的数据并加载到 postgresql
- regex - 我正在尝试从 jmeter 变量中提取数据以存储在文件中。试图编写一个正则表达式以适应此 code.JOb_id 提取?