8

我发现这个答案非常有用。它可以帮助我绘制网络/图形并选择图中节点的坐标。

但是,布局将坐标重新调整为 -1 到 1。首先,我试图找出它是如何做到这一点的,但没有。它会做这样的事情吗?

(coordinate - mean(coordinates))/(coordinate + mean(coordinates)

其次有没有办法保持原来的坐标?我想用图表来绘制坐标轴,所以不想让顶部重新调整所有内容。

4

2 回答 2

10

第一个问题的答案在plot.igraph函数的源代码中;输入plot.igraphR 提示符以获取完整的源代码。里面有一段说:

layout <- layout.norm(layout, -1, 1, -1, 1)

layout.norm是另一个igraph为您带来魔力的功能;键入layout.norm以查看其工作原理。

现在,第二个问题的答案很简单;只需传递rescale=F给 的参数plot,这会跳过调用位置igraph的整个分支,因此它将与您的原始坐标一起使用。然后,您可以像往常一样使用和设置 X 轴和 Y 轴的限制。plot.igraphlayout.normxlimylim

于 2012-06-28T23:39:54.210 回答
0
  set.seed(111)
  ig <- graph_from_data_frame(as.data.frame(matrix(sample(letters,40,rep=TRUE),nc=2)))
  set.seed(123)
  ig.layout <- layout.fruchterman.reingold(ig)
  rownames(ig.layout) <- V(ig)$name
  par(bg="white",mar=c(0,0,0,0),oma=c(0,0,0,0))
  plot.igraph(ig,layout=ig.layout,vertex.color=adjustcolor("gray",alpha.f=0.5),rescale=FALSE,xlim=c(4,11),ylim=c(4,11))
  set.seed(321)
  ig.sub <- subgraph(ig,sample(V(ig)$name,5))
  plot.igraph(ig.sub,layout=ig.layout[V(ig.sub)$name,],add=TRUE,vertex.color=adjustcolor("orange",alpha.f=0.5),rescale=FALSE)

此代码输出图形,其中橙色节点是稍后添加的。

在此处输入图像描述

于 2016-12-15T01:51:46.360 回答