2010-03-01 32 views
11

tôi cần phải hình dung một đồ thị tương đối lớn (6K nút, 8K cạnh) có các thuộc tính sau:Clustered Đồ thị kỹ thuật Visualization

  • Clusters biệt. Khoảng 50-100 Nodes mỗi cụm và kết nối liên thông vừa phải ở cấp cụm
  • Minimal (5-10 cạnh liên cụm mỗi cụm) kết nối liên thông giữa các cụm

Hãy chồng chéo cạnh toàn cầu = Cạnh chồng chéo gây ra bằng cách trực tiếp hình dung biểu đồ các cụm = {A, B, C, D, E}, Cạnh = {Pentagram của các cụm đó, không phẳng theo cách và chắc chắn sẽ tạo chồng chéo cạnh nếu bạn vẽ trực tiếp lên}

Hãy để Local Overlap = ở trên nhưng {A, B, C, D, E} chỉ là các nút.

tôi cần phải hình dung đồ thị với trên một cách thỏa mãn các yêu cầu sau

  • Không cạnh toàn cầu chồng lên nhau (tức là cạnh chồng chéo gây ra bởi tính chất liên cụm không ổn)
  • chồng chéo cạnh địa phương trong một cụm là tốt

Mọi người đều có suy nghĩ về cách trực quan hóa tốt nhất đồ thị với các yêu cầu ở trên?

Một giải pháp mà tôi đã đưa ra để giải quyết sự chồng chéo cạnh toàn cầu là đảm bảo cụm A chỉ có thể có tối đa 1 cạnh trực tiếp tới cụm khác (B) trong khi hiển thị. Bất kỳ cạnh cộng giữa các cụm giữa cụm A -> C, A -> D, ... đều bị ngắt kết nối và các nút/cạnh bổ sung A -> A_C, C -> C_A, A -> A_D, D -> D_A ... được tạo ra.

Mọi người đều có bất kỳ suy nghĩ nào?

+0

Tôi hơi bối rối vì sao bạn muốn ngắt các cạnh từ cụm này sang cụm khác sau khi bạn đã kết nối cạnh đầu tiên. Bạn đang nói rằng bạn đang ngắt kết nối các cạnh khác vì nhóm cụm đó được kết nối hoàn toàn và do đó bạn không cần phải đại diện cho phần còn lại của các kết nối? Nếu vậy tại sao bạn không bước ra khỏi lớp trừu tượng của bạn một bước xa hơn và có cụm cụm được kết nối hoàn toàn? –

Trả lời

1

Tiền sử có một số đồ thị tốt vẽ link text thuật toán được tích hợp sẵn và có vẻ như xử lý các biểu đồ khá lớn tương đối tốt. Bạn có thể thử Flow Map Layout được xây dựng trên đầu trang của Prefuse.

0

Tôi chưa thấy quá nhiều công cụ trực quan hóa biểu đồ hỗ trợ tách các cụm trong biểu đồ một cách trực quan. Một lựa chọn có thể là xem WilmaScope. Dường như có một số hỗ trợ cho bố cục dựa trên cụm.

1

Với mục tiêu của bạn, tôi nghĩ rằng các Fruchterman-Reingold algorithm hiện một công việc khá phong nha của ngăn ngừa chồng chéo cạnh. Xem ví dụ này screenshot của mạng bao gồm nhiều thành phần được vẽ bằng thuật toán Fruchterman-Reingold. IGraph đã được hỗ trợ sẵn cho thuật toán này (cũng như Networkx Tôi tin) và thực sự nhanh.

+0

Tôi đã cố gắng bố trí FR và tôi quyết định không đi với nó cuối cùng. FR có xu hướng chiếm mọi không gian có sẵn với một nút và gây ra một mớ hỗn độn nói chung. Bố cục cục bộ tốt nhất mà tôi đã thử là Multilevel của YiFanHu, tiếp theo là ForceAtlas. Ngoài ra, câu hỏi của tôi ở trên đã hỏi về các kỹ thuật trực quan hóa cụm toàn cầu :) – jameszhao00

0

Bố cục không phải trả tiền quản lý các biểu đồ phân cụm khá tốt trong khung công tác yFiles. Hãy thử đầu tiên trong yEd để xem nó có cần gì không. Có thể là hợp lý khi sử dụng các nhóm biểu đồ lồng nhau cho mỗi nhóm. Bố cục hữu cơ có tính năng được gọi là Group Layout Policy có thể được sử dụng nếu bố cục cần phải được thực hiện bằng các nguyên tắc khác nhau cho các cụm liên cụm và cụm trong, với bố cục gia tăng. Với một số nỗ lực, người ta có thể dịch đồ thị thành GraphML để tránh làm việc thủ công.

1

Có một chương trình được xây dựng trên đầu Prefuse được gọi là SocialAction. Bạn phải yêu cầu mã từ tác giả, nhưng nó thực hiện rất nhiều phân tích thống kê trên biểu đồ cho bạn, chẳng hạn như xác định biểu đồ con.Tôi đã sử dụng nó trên một đồ thị với hơn 18.000 nút, và mặc dù nó là rất chậm ở quy mô đó nó vẫn hoạt động.