r - 是否可以将矩阵映射到 igraph 对象?
问题描述
我有一个矩阵 A
,它定义了一个自相交多边形的有序段:
A <- t(matrix(c(
0, 0 ,
1, 0 ,
1, -2 ,
-2, -2 ,
-2, -1 ,
0, -1 ,
0, -4 ,
-1, -4 ,
-1, -2 ,
2, -2 ,
2, -3 ,
0, -3 ,
0, 0), nrow = 2));
par(mfrow=c(1,3))
plot(A, col='red', type= 'l', xlim=c(min(A[,1]),max(A[,1])),
ylim=c(min(A[,2]),max(A[,2])), xlab='x', ylab='y');
points(A, col='black', pch = 22);
grid()
我注意将矩阵映射A
到无向图,其中一个点对应于一个顶点,“相邻(x,y)
”点 之间的一段对应于一条边。右图上的红线连接的相邻点(按距离但不是 id 的编号)。
编辑。 在 user20650 发表评论后,我将矩阵映射到无向图(图中的中间图)。无向图看起来像预期的结果。但是通过选项(rigth fugure) ,edge.curved=TRUE
我们可以看到边缘(3,4)
、和。(6,7)
(9,10)
(12, 13)
library(igraph)
g <- make_empty_graph(n=nrow(A));
g <- g + path(seq_len(nrow(A)));
plot(as.undirected(g), layout=as.matrix(A))
plot(g, layout=as.matrix(A), edge.curved=TRUE)
边的长度必须等于 1。根据条件,我们应该在图中添加5
vetriesg
和对应的边。
我可以删除边缘(3,4)
并添加边缘(3,9)
等(9,4)
来对(12, 13)
,(9,10)
和(6,7)
.
问题。有没有办法进行这种映射?
解决方案
推荐阅读
- serial-port - 串行写入命令并将输出打印到文件
- android - 如何使用 SmsManager.importMultimediaMessage()?如何在 Android 的数据库中导入彩信?
- python - 为什么 TensorFlow 和 Scipy 之间的 Pearson 相关性不同
- sublimetext3 - 默认情况下在 Sublime 中打开所有 Grid Engine .e、.o、.pe 和 .po 文件?
- c++ - 在 0x00007FF74F27A526 处遇到未处理的异常:堆栈内存溢出
- c# - 为什么我的代码只允许我在列表视图框中拖放最上面的重复项
- android - 如何在Android中使用MPAndroidChart使用两组数据绘制图形
- reactjs - React Antd 在 array.map 上显示多个模式
- matlab - 4D分散数据的Matlab插值
- apache - 将 IIS htaccess 转换为 Apache htaccess 拆分 URL