我有一个图形,但是自循环相对于网络来说很大,有没有办法减少自循环大小而不改变图形的其余部分?
测试数据:
test.matrix=cbind(mtcars$gear,mtcars$carb)
adj.mat=get.adjacency(graph.edgelist(as.matrix(test.matrix)))
g=graph.adjacency(adj.mat,mode="undirected")
plot(g)
我尝试更改curve_multiple
,但没有用,并且在documentation中找不到与缩小循环大小相关的任何内容。
答案 0 :(得分:2)
igraph绘图功能没有选项允许您更改循环的大小。 但是,对igraph源代码进行一些小改动就可以了。您可以通过运行
来查看igraph绘图功能plot.igraph
你会发现igraph plot函数创建了一个名为loop
的函数。在该功能中,您将找到以下行:
cp <- matrix(c(x0, y0, x0 + 0.4, y0 + 0.2, x0 + 0.4,
y0 - 0.2, x0, y0), ncol = 2, byrow = TRUE)
通过将其更改为:
,可以将循环设置为宽/高一半cp <- matrix(c(x0, y0, x0 + 0.2, y0 + 0.1, x0 + 0.2,
y0 - 0.1, x0, y0), ncol = 2, byrow = TRUE)
@desc评论说您可以暂时对igraph图功能源代码进行此更改
trace("plot.igraph",edit=TRUE)