Prefuse dynamiczna wizualizacja danych



Podobne dokumenty
0.1. Diagram klas i pakietów

Wstęp do JUNG. Omówione elementy wykorzystane w Edge Color Project

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

Rozdział 8 PROGRAMOWANIE SIECIOWE

OMNITRACKER Wersja testowa. Szybki przewodnik instalacji

BalticBottomBase. Instytut Morski w Gdańsku Gdańsk,

Ogólne wiadomości o grafach

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Graf. Definicja marca / 1

Straszyński Kołodziejczyk, Paweł Straszyński. Wszelkie prawa zastrzeżone. FoamPro. Instrukcja obsługi

Programowanie obiektowe

Uruchamianie bazy PostgreSQL

Wprowadzenie do rysowania w 3D. Praca w środowisku 3D

Teoria grafów dla małolatów. Andrzej Przemysław Urbański Instytut Informatyki Politechnika Poznańska

2012 Bentley Systems, Incorporated. Bentley Pointools V8i Przegląd

SysML rozpoczynanie projektu SysML001

Matematyczne Podstawy Informatyki

Programowanie obiektowe

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

INSTRUKCJA UŻYTKOWNIKA PORTALU SIDGG

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

DARMOWA PRZEGLĄDARKA MODELI IFC

Zastosowanie CP-grafów do generacji siatek

Agencja Restrukturyzacji i Modernizacji Rolnictwa

Lab. 3 Typy danych w LabView, zapis do pliku

Systemy operacyjne na platformach mobilnych

WebAii Automation Framework

*Grafomania z. Neo4j. Praktyczne wprowadzenie do grafowej bazy danych.

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

Budowa aplikacji ASP.NET z wykorzystaniem wzorca MVC

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Badanie ankietowe dotyczące funkcjonalności aplikacji geoportalowej

Symulacja samochodu z kamerą stereowizyjną. Krzysztof Sykuła 15 czerwca 2007

Emapa GeoMarketing. Opis produktu

PROJEKTOWANIE APLIKACJI INTERNETOWYCH

Modelowanie części w kontekście złożenia

a) 7 b) 19 c) 21 d) 34

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

TOPWEB Microsoft Excel 2013 i PowerBI Przygotowanie danych, analiza i efektowna prezentacja wyników raportów

5.4. Tworzymy formularze

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Sieci Komputerowe 2 / Ćwiczenia 2

Struktury Danych i Złożoność Obliczeniowa

Analityka danych w środowisku Hadoop. Piotr Czarnas, 27 czerwca 2017

Wstęp Budowa Serwlety JSP Podsumowanie. Tomcat. Kotwasiński. 1 grudnia 2008

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Rys. 3. Kod elementów na stronie po dodaniu kontrolek podstawowych.

Funkcja Tablice planowania projektów

Padlet wirtualna tablica lub papier w Internecie

Spis treści. 1 Moduł Mapy 2

!!" % & $ ( # # ( ( # ( ( TalentowiSKO talenty dodajemy, mnoīymy, potċgujemy. TalentowiSKO@bankbps.pl tel TalentowiSKO.

Instytut Technik Innowacyjnych Semantyczna integracja danych - metody, technologie, przykłady, wyzwania

WYKONANIE APLIKACJI OKIENKOWEJ OBLICZAJĄCEJ SUMĘ DWÓCH LICZB W ŚRODOWISKU PROGRAMISTYCZNYM. NetBeans. Wykonał: Jacek Ventzke informatyka sem.

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

java.util.* :Kolekcje Tomasz Borzyszkowski

Ministerstwo Finansów

Autokształtów Autokształt AUTOKSZTAŁTY Wstaw Obraz Autokształty Autokształty GDYNIA 2009

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

Podstawowe kontrolki graficzne. Obsługa plików poprzez kontrolki

Metody Programowania

Architektura interfejsu użytkownika

1. Prymitywy graficzne

Ciekawym rozwiązaniem służącym do obsługi zdarzeń dla kilku przycisków w ramach jednej aktywności może być następujący kod:

BADANIE PRÓBKI SYSTEM EWIDENCJI I ZARZADZANIA DROGAMI WOJEWÓDZKIMI WOJEÓDZTWA KUJAWSKO-POMORSKIEGO.

Temat: Ułatwienia wynikające z zastosowania Frameworku CakePHP podczas budowania stron internetowych

Operacje na gotowych projektach.

GEO-SYSTEM Sp. z o.o. ul. Kubickiego 9 lok. 5, Warszawa, tel./fax , geo-system@geo-system.com.

Modelowanie procesów biznesowych w ADONIS. dr Marek Zborowski

Jak rozpocząć pracę? Mapa

Java Podstawy. Michał Bereta

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Google Earth. Co to jest Google Earth? Co to jest KML? Skąd można pobrać Google Earth?

Organizacyjnie. Prowadzący: dr Mariusz Rafało (hasło: BIG)

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Dodawanie grafiki i obiektów

Forum Client - Spring in Swing

16) Wprowadzenie do raportowania Rave

konspekt pojedynczy slajd sortowanie slajdów strona notatek 1. Widok normalny/konspekt 2. Widok sortowania slajdów 3.

E-commerce. Genialnie proste tworzenie serwisów w PHP i MySQL.

MATEMATYKA DYSKRETNA - KOLOKWIUM 2

Raport dotyczący przeprowadzonych zmian w aplikacji

WYKONANIE OPROGRAMOWANIA DEDYKOWANEGO

Zintegrowany model struktury

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Księgarnia PWN: Andrzej Jaskulski - AutoCAD 2010/LT Podstawy projektowania parametrycznego i nieparametrycznego

POMOC / INSTRUKCJA OBSŁUGI

Planowanie przestrzenne

Podstawy programowania. Wprowadzenie

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Po uruchomieniu adresu otwiera się okno strony głównej z przekierowaniem do właściwej przeglądarki Start The LandsatLook Viewer (ryc. 1).

2018/10/16 20:47 1/5 3 Ekrany

Ćwiczenie 1 Galeria zdjęć

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

STWORZENIE MODUŁU POBIERAJĄCEGO WEKTOROWE

Transkrypt:

Prefuse dynamiczna wizualizacja danych Zimowisko Linuxowe 2011 Konrad Brodzik

Podstawowe pojęcia Graf w uproszczeniu zbiór wierzchołków, które mogą być połączone krawędziami, w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków [ ] Wierzchołki grafu zwykle są numerowane i czasem stanowią reprezentację jakichś obiektów, natomiast krawędzie mogą wówczas obrazować relacje między takimi obiektami. (Wikipedia) Drzewo graf, w którym nie ma cykli (pętli) Minimalne drzewo rozpinające (MST) łączy wszystkie wierzchołki grafu tak, aby suma długości krawędzi była jak najmniejsza

Podstawowe pojęcia Efekt łał efekt, powodowany przez system, gdzie dużo elementów daje się klikać

Po co bawić się grafami? na studiach każą wizualizacja sieci komputerowych i innych struktur pseudohierarchicznych czasem można stworzyć ciekawy rysunek

Sprytny Wiki Nawigator Narzędzie do graficznego przeglądania Wikipedii, z podziałem wyników wyszukiwania na kategorie wiedzy Zgrupowane wyniki wyszukiwania udostępniane poprzez Web Service

Różne rozwiązania do wizualizacji Gossamer (http://gossamer.eti.pg.gda.pl/ ) Napisany we Flashu powolny! Graphviz (http://www.graphviz.org/ ) napisany w C szybki, prosty i statyczny Open Graph Drawing Framework (http://www.ogdf.net/) bardzo rozbudowana biblioteka w C++

Różne rozwiązania do wizualizacji Prefuse Visualization Toolkit (http://www.prefuse.org) ostatnia wersja 2007.10.21 napisany w Javie, działa na JRE 1.6.0u23 Flare (http://flare.prefuse.org/) funkcjonalny odpowiednik Prefuse we Flashu

Prefuse - architektura

Dostęp do danych Wszystkie atrybuty węzła, zadeklarowane w relacji bazodanowej lub GraphMLu są automatycznie dostępne za pomocą słabo lub silnie typowanych getterów Elementy są indeksowane z użyciem wysokowydajnych struktur trie i drzew czerwono-czarnych

Źródło danych - GraphML Węzły i krawędzie opisane tagami <node> i <edge> każdy element może posiadać dodatkowe atrybuty w tagach <data> - muszą być zdefiniowane na początku obsługiwany przez klasę GraphMLReader

Źródło danych - GraphML Przykładowy plik: <graphml> <graph edgedefault="undirected"> <!-- definicja atrybutów --> <key attr.name="x" attr.type="double" for="node" id="x"/> <key attr.name="y" attr.type="double" for="node" id="y"/> <key attr.name="name" attr.type="string" for="node" id="name"/> <key attr.name="typ" attr.type="string" for="node" id="typ"/> <node id="lama"> <data key="name">lama</data> <data key="typ">artykul</data> <data key="x">343.74</data> <data key="y">247.5</data> </node> <node id="ssaki_ameryki_po%c5%82udniowej"> <data key="name">ssaki Ameryki Południowej</data> <data key="typ">kategoria</data> <data key="x">382.91999999999996</data> <data key="y">217.5</data> </node> <edge source="ssaki_ameryki_po%c5%82udniowej" target="lama"/> </graph> </graphml>

Źródło danych - SQL Dowolny driver JDBC Pobieranie wybranych z użyciem Prefuse Expression Language elementów przez DatabaseDataSource bezpośrednio do tabeli

Prefuse Expression Language podobny do SQLa zapytania wstępnie kompilowane funkcje typowo grafowe ( ISNODE, TREEDEPTH) i wizualizacyjne ( VISIBLE) Przykład: pobierz wszystkie widoczne węzły na warstwie 0: Iterator currentlayer = vg.tuples( ExpressionParser.predicate("[warstwa] = 0 && VISIBLE()"));

Widok (prefuse.display) Najważniejszy obiekt w wizualizacji Agreguje: tablicę danych wizualizację akcje związane z wizualizacją Dodawanie danych: visualisation.addgraph(graph)

Wizualizacja (prefuse.visualisation) zawiera graficzne atrybuty elementów położenie widoczność kolor, kształt mapa sąsiadów

Tabela danych (prefuse.data.table) zawiera właściwości elementów pobrane ze źródła danych, wraz z metodami canget i get, typowanymi jako Object lub String/Boolean/Integer itp..

Akcje (prefuse.action) Uniwersalne komponenty, służące do przetwarzania danych lub rysowania Standardowe akcje: rozplanowanie przestrzenne węzłów kolorowanie wierzchołków rysowanie etykiet kolorowanie krawędzi powiększanie i przesuwanie widoku

Akcje (prefuse.action) ColorAction text = new ColorAction(treeNodes, VisualItem.TEXTCOLOR, ColorLib.gray(0)); // stworz akcje, ktora bedzie uruchamiana cyklicznie w nieskonczonosc ActionList color = new ActionList(Activity.INFINITY); color.add(text); // dodaj akcję do kolejki m_vis.putaction("color", color); // koloruj. teraz. m_vis.run( color ); // wylacz kolorowanie m_vis.removeaction( color );

Akcje ułożenia Rozplanowują węzły według określonego porządku Pułapki: jeśli rozplanowanie działa w tle, może nam uniemożliwiać drag & drop niektóre ułożenia wymagają drzewa jeśli podany graf nim nie jest, rysowane jest jego MST niektóre ułożenia wymagają dodatkowych parametrów, przy ich braku narysują wszystko w jednym punkcie

Dostępne ułożenia Symulacja fizyczna (węzły połączone wirtualnymi sprężynami) Drzewo Oś Okrąg Rozmieszczenie losowe Własny layout z podaniem współrzędnych

Dostępne ułożenia Bliskoznaczność słów im bliżej środka tym bliższe znaczenie

Dostępne ułożenia Wędrówki ludów między stanami USA - grubość linii reprezentuje wielkość przepływu

ZoneManager grupowanie sprężynujących węzłów Gadżety

Gadżety RainbowEdges bo grafy wcale nie muszą być nudne!

Gadżety Poza tym: filtr rybie oko podświetlanie krawędzi centrowanie na klikniętym węźle cdn.

Dynamiczne dodawanie węzłów Teoretycznie nie powinno się, ale jak się bardzo chce.. Node rootnode,mynode; Graph t; Display disp; synchronized (disp) { // kluczowe! inaczej wizualizacja zniszczy nasze zmiany } Node mynode = t.addnode(); t.addedge( rootnode, mynode);

Demonstracja Sprytny Wiki Nawigator http://swn.eti.pg.gda.pl/swn2/uruchom.aspx

Podsumowanie Zalety Prefuse z punktu widzenia projektu SWN płynne rysowanie kilkuset węzłów łatwa integracja z Web Services gotowe komponenty, które można sukcesywnie podmieniać możliwość szybkiego zbudowania interfejsu (Swing) możliwość pracy bez serwera WWW Pytania?