-1

我有一个方阵,其中每个元素都包含与相应行和列关联的点之间的连接量。我还有每个点的坐标列表。我的目的是绘制这个矩阵,以便根据它们的坐标表示点,并且它们之间的连接数由不同粗细的线表示。我已经尝试使用 igraph 包来执行此操作,但我找不到将地理坐标与我的行和列相关联的方法。

我当前的代码如下:

    library(igraph)
    connectivityMatrix <- as.matrix(read.table(file='settlementMatrix004800.dat'))
    g <- graph.adjacency( connectivityMatrix, weighted=TRUE, mode="undirected" )
    plot(g)

这绘制了点和连接,但没有考虑网络的拓扑。我也尝试使用 statnet 包,但也找不到考虑坐标的方法。

    library(statnet)
    connectivityMatrix <- as.matrix(read.table(file='settlementMatrix004800.dat'))
    net <- as.network(connectivityMatrix, matrix.type = "adjacency", directed = TRUE)
    bet <- betweenness(net)
    gplot(net, mode="segeo")

你有什么好的建议吗?

提前谢谢你,

4

1 回答 1

0

思路是获取邻接矩阵中非零条目的列表,找出它们的条目索引(通过rowcol),找到对应的坐标,然后使用segments函数将它们连接起来。这是一个最大连接的三顶点图的示例:

adj <- matrix(1, 3,3)
x <- 1:3
y <- c(1,2,1)
plot(x,y)
isLine <- which(adj!=0)
segments(x[row(adj)[isLine]], y[row(adj)[isLine]], x[col(adj)[isLine]], y[col(adj)[isLine]],   lwd=adj[isLine])
于 2015-01-06T12:30:06.110 回答