Wizualizacja grafów. Szymon Matejczyk



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

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 8: Structured PredicCon 2

JavaFX. Programowanie Obiektowe Mateusz Cicheński

Camspot 4.4 Camspot 4.5

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

TTIC 31210: Advanced Natural Language Processing. Kevin Gimpel Spring Lecture 9: Inference in Structured Prediction

Podstawy XML-a. Zaawansowane techniki programowania

Zakopane, plan miasta: Skala ok. 1: = City map (Polish Edition)

Stargard Szczecinski i okolice (Polish Edition)

MaPlan Sp. z O.O. Click here if your download doesn"t start automatically

Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli

Machine Learning for Data Science (CS4786) Lecture 11. Spectral Embedding + Clustering

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Tychy, plan miasta: Skala 1: (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Sexy unit testy. czyli o kilku praktykach w testach jednostkowych

Katowice, plan miasta: Skala 1: = City map = Stadtplan (Polish Edition)

Laboratorium Programowania Kart Elektronicznych

Lecture 18 Review for Exam 1

OpenPoland.net API Documentation

Proposal of thesis topic for mgr in. (MSE) programme in Telecommunications and Computer Science

Tworzenie aplikacji w języku Java

MS Visual Studio 2005 Team Suite - Performance Tool

TYLKO DO UŻYTKU WŁASNEGO! PERSONAL USE ONLY!

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

(Apache) CouchDB. Krzysztof Kulewski 2008

Laboratorium Programowania Kart Elektronicznych

MVC w praktyce tworzymy system artykułów. cz. 1

Wykład 2 Wybrane konstrukcje obiektowych języków programowania (1)

Java - interfejs graficzny

Zmiany techniczne wprowadzone w wersji Comarch ERP Altum

Leba, Rowy, Ustka, Slowinski Park Narodowy, plany miast, mapa turystyczna =: Tourist map = Touristenkarte (Polish Edition)

Rev Źródło:

Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7

Weronika Mysliwiec, klasa 8W, rok szkolny 2018/2019

1. CZYM JEST SERIALIZACJA

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

ARNOLD. EDUKACJA KULTURYSTY (POLSKA WERSJA JEZYKOWA) BY DOUGLAS KENT HALL

Google Web Toolkit. Piotr Findeisen

Pielgrzymka do Ojczyzny: Przemowienia i homilie Ojca Swietego Jana Pawla II (Jan Pawel II-- pierwszy Polak na Stolicy Piotrowej) (Polish Edition)

Karpacz, plan miasta 1:10 000: Panorama Karkonoszy, mapa szlakow turystycznych (Polish Edition)

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Testy jednostkowe - zastosowanie oprogramowania JUNIT 4.0 Zofia Kruczkiewicz

Laboratorium Programowania Kart Elektronicznych

Laboratorium 8 Diagramy aktywności

January 1st, Canvas Prints including Stretching. What We Use

Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.

Hard-Margin Support Vector Machines

Emilka szuka swojej gwiazdy / Emily Climbs (Emily, #2)

Sprawozdanie z laboratorium 2: Modeling knowledge with Resource Description Framework (RDF)

0.1. Diagram klas i pakietów

Technologie Informacyjne

Wprowadzenie. Narzędzia i środowiska programistyczne. Laboratorium 1. Prowadzący: Kierunek: Semestr: Rok: Tomasz Gądek Informatyka Zimowy 2

Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Języki i metody programowania Java Lab1 Zofia Kruczkiewicz

itext 1. Wprowadzenie 2. Przykłady i zastosowania.

Język angielski. Poziom rozszerzony Próbna Matura z OPERONEM i Gazetą Wyborczą CZĘŚĆ I KRYTERIA OCENIANIA ODPOWIEDZI POZIOM ROZSZERZONY CZĘŚĆ I

Prefuse dynamiczna wizualizacja danych

****/ZN/2012. if you are pregnant or breast-feeding.

Miedzy legenda a historia: Szlakiem piastowskim z Poznania do Gniezna (Biblioteka Kroniki Wielkopolski) (Polish Edition)

Instrukcja konfiguracji usługi Wirtualnej Sieci Prywatnej w systemie Mac OSX

Wybrzeze Baltyku, mapa turystyczna 1: (Polish Edition)

Dolny Slask 1: , mapa turystycznosamochodowa: Plan Wroclawia (Polish Edition)

Programowanie telefonów z Windows Phone 7, cz. 3

Healthix Consent Web-Service Specification

Java. Programowanie Obiektowe Mateusz Cicheński

METHOD 2 -DIAGNOSTIC OUTSIDE

Java JMX. Marcin Werla. Monitorowanie i zarządzanie usługami sieciowymi w Javie. mwerla@man.poznan.pl PCSS/Poznań JUG

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

Java Platform Micro Edition

Bartosz Jachnik - Kino

USB firmware changing guide. Zmiana oprogramowania za przy użyciu połączenia USB. Changelog / Lista Zmian

X11R5. .Xresources. Pliki konfiguracyjne X-Windows. Zasada działania X11. .xinitrc. X protocol X server. X client. X library

ASP.NET MVC. Podstawy. Zaawansowane programowanie internetowe Instrukcja nr 3

Projekt i uruchomienie prostego serwera OPC UA w oparciu o oprogramowanie szkieletowe Quasar opracowane w CERN

I.Wojnicki, Tech.Inter.

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

DO MONTAŻU POTRZEBNE SĄ DWIE OSOBY! INSTALLATION REQUIRES TWO PEOPLE!

[Android] Podstawy programowania

Instrukcja obsługi User s manual

Hurtownia Świętego Mikołaja projekt bazy danych

Przegląd grafowych baz danych. Paweł Bednarz

Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania

Polski Krok Po Kroku: Tablice Gramatyczne (Polish Edition) By Anna Stelmach

EXCEL PL PROGRAMOWANIE PDF

How to share data from SQL database table to the OPC Server? Jak udostępnić dane z tabeli bazy SQL do serwera OPC? samouczek ANT.

Installation of EuroCert software for qualified electronic signature

Kurs programowania. Wykład 6. Wojciech Macyna. 7 kwietnia 2016


Zaawansowane aplikacje WWW - laboratorium

Samurai SHARK SH903. RF Combo Wireless Mouse & Keyboard

Programowanie RAD Delphi

SNP SNP Business Partner Data Checker. Prezentacja produktu

JavaScript funkcyjność

Plan bazy: Kod zakładający bazę danych: DROP TABLE noclegi CASCADE; CREATE TABLE noclegi( id_noclegu SERIAL NOT NULL,

Ogólne wiadomości o grafach

Programowanie obiektowe

Wojewodztwo Koszalinskie: Obiekty i walory krajoznawcze (Inwentaryzacja krajoznawcza Polski) (Polish Edition)

Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)

Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Transkrypt:

Plan prezentacji 1. 2. 3. 4. Wprowadzenie Zarys teorii Reprezentacja grafów Programy do rysowania (nasze wymagania) 1. graphviz 2. diagram.ly 3. yed 5. Biblioteki 1. jgraph (mxgraph) 2. yfiles 3. JUNG 6. Podsumowanie

Po co? bioinformatyka business process modeling data mining bazy danych zarządzanie sieciami sieci społecznościowe projekty informatyczne wizualizacja WWW visual programming

Wizualizcja grafów Planarność K5 K3,3 Graf skończony jest planarny wtedy i tylko wtedy, gdy nie zawiera podgrafu homeomorficznego z grafem K5 ani z grafem K3,3.

Wizualizcja grafów Planarność Wzór Eulera Jeżeli G jest grafem spójnym i planarnym, to V + S E = 2, gdzie V - zbiór wierzchołków, E - zbiór krawędzi, S - zbiór ścian dowolnego rysunku płaskiego grafu G. Wnioski: Jeżeli G jest planarny, to Jeżeli G jest planarny, to wierzchołek o najmniejszym stopniu jest stopnia co najwyżej 5.

Wizualizcja grafów Force-directed algorithm

Wizualizcja grafów Inne grafy sieci Petriego hipergrafy grafy 3d? etykietowanie?

Reprezentacje grafów: graphml <?xml version="1.0" encoding="utf-8"?> <graphml...> <key id="d0"for="node" attr.name="color" attr.type="string"> <default>yellow</default> </key> <key id="d1" for="edge"attr.name="weight" attr.type="double" /> <graph id="g"edgedefault="undirected"> <node id="n0"> <data key="d0">green</data> </node> <node id="n1" /> <node id="n2"> <data key="d0">blue</data> </node> <edge id="e0" source="n0" target="n2"> <datakey="d1">1.0</data> </edge> <edge id="e1" source="n0" target="n1"> <data key="d1">1.0</data> </edge> <edge id="e2" source="n1"target="n3"> <data key="d1">2.0</data> </edge> </graph> </graphml>

Reprezentacje grafów: gml graph [ hierarchic 1 label "" directed 1 node [ id 0 label "1" graphics [... ] ] node [ id 1 label "2" ] edge [ source 25 target 4 ]

Wizualizcja grafów Reprezentacje grafów: DOT language digraph unix { size="6,6"; node [color=lightblue2, style=filled]; "5th Edition" -> "6th Edition"; "5th Edition" -> "PWB 1.0"; "6th Edition" -> "LSX"; "6th Edition" -> "1 BSD"; "6th Edition" -> "Mini Unix"; "6th Edition" -> "Wollongong"; "6th Edition" -> "Interdata"; "Interdata" -> "Unix/TS 3.0"; "Interdata" -> "PWB 2.0"; "Interdata" -> "7th Edition"; "7th Edition" -> "8th Edition"; "7th Edition" -> "32V"; "7th Edition" -> "V7M"; "7th Edition" -> "Ultrix-11";

Reprezentacje grafów Inne: gxl trivial graph format XGGML...

Graphviz Open source input: DOT language obsługa z linii poleceń brak edycji biblioteki: C Tcl/Tk output: svg, PDF, PS layouty - pluginy

Graphviz - neato dot - "hierarchical'' or layered drawings of directed graphs. This is the default tool to use if edges have directionality. dot aims edges in the same direction (top to bottom, or left to right) and then attempts to avoid edge crossings and reduce edge length.

Graphviz - neato neato - This is the default tool to use if the graph is not too large (about 100 nodes) and you don't know anything else about it. Neato attempts to minimize a global energy function, which is equivalent to statistical multi-dimensional scaling.

Graphviz - fdp fdp - "spring model'' layouts similar to those of neato, but does this by reducing forces rather than working with energy. Fdp implements the Fruchterman-Reingold heuristic including a multigrid solver that handles larger graphs and clustered undirected graphs.

Graphviz - wopi wopi - radial layouts, after Graham Wills 97. Nodes are placed on concentric circles depending their distance from a given root node. You can set the root node, or let twopi do it.

Graphviz - circo circo - circular layout, after Six and Tollis 99, Kauffman and Wiese 02. This is suitable for certain diagrams of multiple cyclic structures, such as certain telecommunications networks.

Wizualizcja grafów diagram.ly Java script input/export: własny xml export: jpg, png, svg bogate opcje graficzne grupy/porty różne typy diagramów wszystkie przegladarki integracja z php/.net/ajax

yed

yed free import: xml, excel, graphml export: graphml, graficzne automatic layouts Windows, Unix, MacOs

yed - supported diagrams

Biblioteki - wymagania import/export do popularnych formatów wspierane typy grafów, grupowanie przybliżanie i oddalanie, przesuwanie, itp. wbudowany edytor reakcja na zdarzenia użytkownika dodatkowe dane (labele, opisy, obrazki) layouty algorytmy grafowe wbudowane typy wyświetlania grafu wsparcie, dokumentacja otwartość kodu wspierane systemy technologie webowe

jgraph Free, open-source (BSD) SWING wczytywanie z ~CSS bogaty zbiór wbudowanych symboli import export do własnego xml walidacja framework JavaScript, diagram.ly komercyjne wsparcie bardzo skromny manual + przykłady tranzakcje

jgraph - grafy multigrafy porty grupy rozwijanie i zwijanie, ukrywanie wspólne wartwy widok tylko danej grupy

jgraph // Adds cells to the model in a single step graph.getmodel().beginupdate(); try { Object v1 = graph.addvertex(parent, null, "Hello,", 20, 20, 80, 30); Object v2 = graph. addvertex(parent, null, "World!", 200, 150, 80, 30); Object e1 = graph.addedge(parent, null, "", v1, v2); } finally { // Updates the display graph.getmodel().endupdate(); }

Wizualizcja grafów jgraph

yfiles komercyjny (30 dniowy trial) także w.net import/export z graphml, gml export do formatów grafiki rastrowej i wektorowej notacja UML, BPMN, wbudowane style całych diagramów wspracie dla JS, Silverlight, Flex bogaty manual i przykłady

JUNG

JUNG open source input: graphml, PAJEK layouts export: png, jpg, eps lekki brak przykładów i tutoriala - źródła i API dostępne

JUNG Graph<Integer, String> g = new SparseMultigraph<Integer, String>(); // Add some vertices. From above we defined these to be type Integer. g.addvertex((integer)1); g.addvertex((integer)2); g.addvertex((integer)3); // Add some edges. From above we defined these to be of type String // Note that the default is for undirected edges. g.addedge("edge-a", 1, 2); // Note that Java 1.5 auto-boxes primitives g.addedge("edge-b", 2, 3); System.out.println("The graph g = " + g.tostring());

JUNG public static void main(string[] args) { SimpleGraphView sgv = new SimpleGraphView(); //We create our graph in here Layout<Integer, String> layout = new CircleLayout(sgv.g); layout.setsize(new Dimension(300,300)); BasicVisualizationServer<Integer,String> vv = new BasicVisualizationServer<Integer,String>(layout); vv.setpreferredsize(new Dimension(350,350)); JFrame frame = new JFrame("Simple Graph View"); frame.setdefaultcloseoperation(jframe.exit_on_close); frame.getcontentpane().add(vv); frame.pack(); frame.setvisible(true); }

Przykłady jgraph HelloWorld Port walidacja yfiles layout.withoutview.groupinglayoutwithoutaview layout genealogy orgchart view.realizer io.graphml