当前位置: 首页 > 知识库问答 >
问题:

R-绘制具有相同结构的随机图

翟泰
2023-03-14

我正在用igraph-库在R中创建一个随机图。

library(igraph)
g <- erdos.renyi.game(12, 0.25)
par(mfrow=c(1,2))
plot(g)
plot(g)

这将创建以下情节:

如你所见,它创建了两个不同的图——即使给定相同的节点和边。我如何让R图显示相同的图,这样我就可以在顺序相同的情况下突出显示一些边/节点。

目标是创建一个随机网络,在一定程度上,两个节点通过一条边连接(上面的例子是p=0.25,对于n=12节点)。然后,每次我绘制该图时,都会将节点绘制在同一点上(即使节点大小不同)。

我如何做到这一点?请注意,我不限于g


共有1个答案

房学
2023-03-14

作为igraphlayout=layout_的默认值,它重新计算了每个绘图

您可以尝试将布局指定为矩阵或函数以获取坐标

布局

函数或数值矩阵。它指定顶点将如何放置在绘图上。

如果是数值矩阵,则矩阵的每个顶点必须有一条线,指定其坐标。对于x和y坐标,矩阵应至少有两列,也可以有第三列,这将是3D绘图的z坐标,而对于2D绘图则忽略。。。。。

举个例子

g <- erdos.renyi.game(12, 0.25)
g$layout <- layout_as_star
par(mfrow=c(1,2))
plot(g)
plot(g)

你可以在这里找到完整的清单

还可以通过获取一个图形的坐标来确定点的位置,如:

par(mfrow=c(2,2))
for( i in 1:4){
  g <- erdos.renyi.game(12, 0.25)
 if( i ==1) coords <- layout_components(g) # if first -- get coordinates
  g$layout <- coords
  plot(g)
}

 类似资料:
  • 我的迭代器 我的绘图方法

  • 问题内容: 因此,我正在创建一个免费的手绘图JPanel,它会响应鼠标的移动并 绘制线条。我得到了它的大部分工作,除了一个错误,它会 在线之间随机画一条直线。该随机直线不是 故意的,在缓冲图像上绘制的内容严格来说应该是 用户绘制的内容。这些随机绘制的线不是由用户完成的, 这令人困惑。以下是我的代码,任何人都可以看看吗?所包含的图像 使您可以直观地看到正在执行的操作。 问题答案: 您可能希望嵌套列表

  • 当相应的列>0时,我需要将一些数据列设置为NA。 我也在考虑重塑,这样我就可以做一个变异。这里最好的做法是什么?

  • 问题内容: 我有两个成员相同,我想将一个结构复制到另一个结构,请参见下面的伪代码: 然后,我有结构的,而结构的,有什么办法复制的? 问题答案: 使用转换更改类型。以下代码使用转换将type 的值复制到type 的值: 游乐场的例子 该转换仅在基础类型,除了结构标签相同的工作。

  • 本文向大家介绍如何在R中创建具有随机值的矩阵?,包括了如何在R中创建具有随机值的矩阵?的使用技巧和注意事项,需要的朋友参考一下 通常,使用给定值创建矩阵,但是如果我们要创建具有随机值的矩阵,则将对矩阵函数使用常规方法。R中的随机选择可以根据我们的目标以多种方式完成,例如,如果要从正态分布中随机选择值,则将使用rnorm函数并将其存储在矩阵中,然后将其传递到矩阵函数中。 示例 输出结果 示例 输出结

  • 目前,b1和b2相互重叠。如何像这样分别绘制它们: