2016-09-02 21 views
7

Tôi có biểu đồ có vài trăm nút và cạnh. Các đồ thị con bị ngắt kết nối riêng biệt và giải quyết tốt nhưng các nút trong đồ thị con chồng lên nhau và không giải quyết tốt. Tôi đã thử một số thuật toán bố cục và cũng đã thử thay đổi các tham số có liên quan trong thuật toán bố cục (ví dụ: iter, kkconst, start.temp, v.v.). Nhưng, tôi vẫn không thể phân tán các nút được nhóm chặt. Xem hình bên dưới.igraph: Giải quyết các nút chồng chéo chặt chẽ

Tôi đã hy vọng tìm thấy một số thông số để kiểm soát thu hút/đẩy/trọng lực vv nhưng dường như không có. Câu trả lời và số liệu từ bdemarest trong này question dường như sửa chữa chính xác vấn đề này. Kỳ lạ là đủ, một số tham số dường như hữu ích đã không được chấp nhận trong phiên bản mới của igraph (coolexp, maxdelta, area, repulserad, v.v.).

Có ai biết cách giữ biểu đồ phụ được tách biệt tốt trong khi trải rộng các nút đóng đủ tốt để chúng không chồng lên nhau không?

graphs

Trả lời

5

tôi quản lý để làm cho nó hoạt sử dụng gói qgraph.

enter image description here

Dưới đây là một ví dụ làm việc:

library(igraph) 
library(qgraph) 

g <- barabasi.game(355, directed=FALSE) 

png("plot1.png", height=6, width=12, units="in", res=250) 
par(mfrow=c(1, 3)) 

plot(g,layout=layout_with_fr,vertex.size=4,vertex.label=NA) 
mtext("layout_with_fr", side=1) 

e <- get.edgelist(g) 
l <- qgraph.layout.fruchtermanreingold(e,vcount=vcount(g)) 
plot(g,layout=l,vertex.size=4,vertex.label=NA) 
mtext("qgraph.layout.fruchtermanreingold default", side=1) 

l <- qgraph.layout.fruchtermanreingold(e,vcount=vcount(g), 
     area=8*(vcount(g)^2),repulse.rad=(vcount(g)^3.1)) 
plot(g,layout=l,vertex.size=4,vertex.label=NA) 
mtext("qgraph.layout.fruchtermanreingold modified", side=1) 

dev.off() 

fig2

+0

@mf Trong bạn mã hóa các 'e <- get.edgelist (g) cần phải chứa chỉ mục. Sau đó, bạn cần thay đổi cho 'e <- get.edgelist (g, names = False)' – fmassica

Các vấn đề liên quan