繁体   English   中英

我可以旋转 igraph::graph 制作的网络图吗?

[英]Can I rotate a network graph made by igraph::graph?

我正在尝试使用igraph包从教科书中复制一个图形。 此代码正确绘制结构:

library(igraph)
g <- graph( c( "W","X", "Y","Z", "Y","W", "Z","W"), dir=FALSE)
plot(g, vertex.shape = "none")

但是整个图形都旋转了,所以它与书不匹配。 上图中的 X 节点在钟面上的 1:00 处向上。 我想要它,所以它在 9:00 出来。 看到一个帖子,表明 igraph::tkplot() 可以旋转,但我需要一个静态图。 有没有办法旋转未使用 tkplot(g) 渲染的 igraph 网络图?

是的,您只需要控制布局。 默认布局是通过layout_nicely完成的。 要仅旋转该布局,只需保存布局并乘以旋转矩阵即可。 您可能需要稍微了解一下使用多大的旋转。

LO = layout_nicely(g)
angle = 2*pi * 7.5/12
RotMat = matrix(c(cos(angle),sin(angle),-sin(angle), cos(angle)), ncol=2)
LO2 = LO %*% RotMat

plot(g, vertex.shape = "none", layout = LO2)

带有旋转布局的图形

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM