2013-03-27 15 views
14

Mam wykres z 690,024 węzłami i 7,398,042 krawędziami i chcę go zwizualizować. Użyłem kropki i gephi graphviz, ale oba kończą się z powodu małej ilości pamięci. Czy istnieje sposób, aby rozwiązać ten problem?Wizualizacja dużych wykresów

+0

ile masz dostępnej pamięci RAM? w jakim formacie są wykresy? –

+0

Mam 24 GB pamięci RAM i obecnie mój wykres jest w formacie kropki, ale nie mogę go zmienić na nic. – AliBZ

Odpowiedz

13

Gephi ma limit na podstawie ilości pamięci przydzielonej mu w JVM. Sprawdź to http://gephi.org/users/requirements/, aby wprowadzić zmiany.
Proponuję użyć Stanford Network Analysis Platform (SNAP).
Główna biblioteka SNAP jest napisana w języku C++ i zoptymalizowana pod kątem maksymalnej wydajności i kompaktowej reprezentacji graficznej.
Łatwo skaluje się do ogromnych sieci z setkami milionów węzłów i miliardami krawędzi. Skutecznie manipuluje dużymi wykresami, oblicza właściwości strukturalne, generuje regularne i losowe wykresy oraz obsługuje atrybuty na węzłach i krawędziach. Oprócz skalowalności do dużych wykresów, dodatkową siłą SNAP jest to, że węzły, krawędzie i atrybuty na wykresie lub w sieci mogą być dynamicznie zmieniane podczas obliczeń.

1

Wypróbuj Tulip. Pobrałem źródło i przebudowałem, jest to łatwe, gdy zainstalujesz Qt SDK.

edit myślę, że procesor Graphviz dla dużych wykresach powinny być sfdp, zobacz pierwszą dyskusję (ładowanie bardzo duży wykres nie powiodło się)

+0

Tulip działa dobrze dla mniejszych wykresów, ale dla mojego wykresu rozbił się po dniu. – AliBZ

2

może warto rozważyć Hive plots jeśli chcesz wizualizować relacje między wszystkimi krawędziami wykres o tej wielkości. Jeśli potrzebujesz zbudować wykres, w którym wyświetlane są węzły i krawędzie, możesz wypróbować wersję igraph, która ma interfejs Python i R. Skonstruowałem bardzo duże wykresy, używając igraph do R, ale nie mogę przypomnieć sobie wymagań dotyczących pamięci (prawdopodobnie i tak zależałoby to od danych).

2

Budujemy http://www.github.com/graphistry/pygraphistry, aby umożliwić to działanie z większości przeglądarek i notebooków. Chodzi o to, aby użyć WebGL do renderowania dużych wykresów (panoramowanie/powiększanie/itp.) I odciążyć większość obliczeń czasu rzeczywistego (układ, filtr itp.) Do chmury GPU. Jest podobny do Gephi i Cytoscape, ale bardziej koncentruje się na skalowaniu do dużych wykresów i usprawnianiu analizy danych oraz integracji w aplikacjach internetowych i środowiskach przenośnych.

1

LGL wykorzystywane do pracy w takim przypadku do wizualizacji statycznych - co najmniej kilka lat temu :)

http://lgl.sourceforge.net/ http://www.ncbi.nlm.nih.gov/pubmed/15184029?dopt=Abstract

użyłem go np na rysunku: https://static-content.springer.com/image/art%3A10.1186%2F1471-2105-7-276/MediaObjects/12859_2006_Article_1015_Fig2_HTML.jpg

w papierze : http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-7-276 z danymi o porównywalnej liczbie węzłów i krawędzi.

+0

To naprawdę miłe z ciebie, młody człowieku. Bądź nadal tak miły i odważny i daj mi e-mail z Twoim prawdziwym imieniem. Chciałbym porozmawiać z twoim opiekunem dyplomowym. Pozdrowienia, Michał Okoniewski, dr hab, ETH Zurich. – MichalO