1

我正在使用 R 中的 qgraph 包从邻接矩阵创建网络。我希望将节点绘制成同心圆,一个节点从中间开始,然后在不同的圆上绘制节点。

我收到了这段代码来创建这些圆圈并计算节点的坐标:

nNodes=1
layoutnew <- matrix(0,nrow=nNodes,ncol=2)
tl=nNodes+1
layoutnew[,1]=sin(seq(0,2*pi, length=tl))[-tl]
layoutnew[,2]=cos(seq(0,2*pi, length=tl))[-tl] 
layoutnew <- layoutnew/2

nNodes2=4
layoutnew2 <- matrix(0,nrow=nNodes2,ncol=2)
tl2=nNodes2+1
layoutnew2[,1]=sin(seq(0,2*pi, length=tl2))[-tl2]
layoutnew2[,2]=cos(seq(0,2*pi, length=tl2))[-tl2] 

此代码适用于两个圆圈,中间有 1 个节点,下一个圆圈有 4 个节点,但第三个圆圈(应该还有两个节点)绘制在第二个圆圈上。对于这个圈子,我使用了以下代码:

nNodes3=2
layoutnew3 <- matrix(0,nrow=nNodes3,ncol=2)
tl3=nNodes3+1
layoutnew3[,1]=sin(seq(0,2*pi, length=tl3))[-tl3]
layoutnew3[,2]=cos(seq(0,2*pi, length=tl3))[-tl3] 

有谁知道为什么会这样?是否有另一种方法来计算同心圆上节点的坐标?

谢谢!

4

0 回答 0