Οπτικοποίηση με Prefuse. Δομή / Βασικά Χαρακτηριστικά / Παράδειγμα

Σχετικά έγγραφα
Λογισμικά για Στατιστική Ανάλυση. Minitab, R (ελεύθερο λογισμικό), Sas, S-Plus, Stata, StatGraphics, Mathematica (εξειδικευμένο λογισμικό για

Βαζηθό κάζεκα γηα ην ArcGIS

Searching and Downloading OpenStreetMap Data

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Βάσεις Δεδομένων. Εισαγωγή για το Εργαστήριο. Δρ. Τιάκας Ελευθέριος. Τμήμα Πληροφορικής ΑΠΘ

Κεφάλαιο 6: Διαμόρφωση χάρτη

Εργαστήριο Ανάπτυξης Εφαρμογών Βάσεων Δεδομένων. Εξάμηνο 7 ο

Περιγραφή του EcoTruck

Ανάπτυξη διαδικτυακών εφαρμογών με την Python Το εργαλείο Flask

Λογισμικά για Στατιστική Ανάλυση. Minitab, R (ελεύθερο λογισμικό), Sas, S-Plus, Stata, StatGraphics, Mathematica (εξειδικευμένο λογισμικό για

3o/B Mάθημα: Δικτύωμα / 2D-Truss in Batch

ΠΡΟΣΟΜΟΙΩΣΗ ΘΕΩΡΙΑ 1. H αρχική οθόνη του Open Roberta lab

2. Εισαγωγή Δεδομένων σε Σχεσιακή Βάση Δεδομένων

Bizagi Modeler: Συνοπτικός Οδηγός

CHAPTER 12: PERIMETER, AREA, CIRCUMFERENCE, AND 12.1 INTRODUCTION TO GEOMETRIC 12.2 PERIMETER: SQUARES, RECTANGLES,

ΓΡΑΜΜΙΚΟΣ & ΔΙΚΤΥΑΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

8. ΜΕΤΑΣΧΗΜΑΤΙΣΜΟΣ ΔΕΔΟΜΕΝΩΝ

Προηγµένα Θέµατα Τεχνολογιών Υλοποίησης Αλγορίθµων

CYTA Cloud Server Set Up Instructions

Λευτέρης Κουμάκης ΠΟΛΥΜΕΣΙΚΕΣ ΥΠΗΡΕΣΙΕΣ ΣΤΗΝ ΥΓΕΙΑ

Στο εστιατόριο «ToDokimasesPrinToBgaleisStonKosmo?» έξω από τους δακτυλίους του Κρόνου, οι παραγγελίες γίνονται ηλεκτρονικά.

Δημιουργία Λογαριασμού Διαχείρισης Business Telephony Create a Management Account for Business Telephony

Προσομείωση ασύρματων δικτύων με τη χρήση του OPNET Modeler

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 24/3/2007

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 133: ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΕΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΕΡΓΑΣΤΗΡΙΟ 3 Javadoc Tutorial

Eισαγωγή στο λογισμικό QGis

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ορισμοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Τι είναι η Spring. Η Spring είναι ένα ελεύθερο (open source) περιβάλλον εργασίας για εφαρμογές Java. Μπορεί να περιγραφεί ως:

ΥΠΟΛΟΓΙΣΤΙΚΕΣ ΜΕΘΟΔΟΙ ΣΤΙΣ ΚΑΤΑΣΚΕΥΕΣ

Μεταπτυχιακή εργασία : Μελέτη της εξέλιξης του προσφυγικού οικισμού της Νέας Φιλαδέλφειας με χρήση μεθόδων Γεωπληροφορικής.

Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια

ΑΛΛΗΛΕΠΙΔΡΑΣΗ ΑΝΘΡΩΠΟΥ - ΥΠΟΛΟΓΙΣΤΗ. Διδάσκων: Κωνσταντίνος Στεφανίδης

MySQL + Γλώσσα Προγραμματισμού. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

A, B. Before installation of the foam parts (A,B,C,D) into the chambers we put silicone around. We insert the foam parts in depth shown on diagram.

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ - ΤΜΗΥΠ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι

2. Εισαγωγή στην βιβλιοθήκη igraph. δικτύων - γραφημάτων. δικτύων - γραφημάτων. δικτύων - γραφημάτων. δικτύων - γραφημάτων

2. Εισαγωγή στην βιβλιοθήκη igraph

Βάσεις Δεδομένων 3η εργαστηριακή άσκηση

ύο μηχανισμοί απαιτούνται: 1. Μία μέθοδος για τη δημιουργία διεργασιών

Ο ΗΓΙΕΣ ΧΡΗΣΗΣ. Programs>>ArcGIS>>ArcMap>>A new empty map

ΕΡΓΑΣΤΗΡΙΟ 5 ΣΗΜΕΙΩΣΕΙΣ

Ενεργές ΒΔ. Παύλος Εφραιμίδης pefraimi <at> ee.duth.gr. Βάσεις Δεδομένων Ενεργές ΒΔ 1

How to register an account with the Hellenic Community of Sheffield.

VERSION 1.0 ΝΟΕΜΒΡΙΟΣ, 2016 ΤΕΧΝΟΛΟΓΙΕΣ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΤΟΠΟΛΟΓΙΕΣ ΔΙΚΤΥΩΝ ΣΤΟ CLOUDSIM ΕΠΙΜΕΛΕΙΑ: ΒΑΣΙΛΕΙΟΣ ΤΣΑΚΑΝΙΚΑΣ

6. ΕΠΙΣΚΟΠΗΣΗ ΤΟΥ ΧΑΡΤΗ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #6

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Ακεραιότητα και Ασφάλεια Μέρος 1 Σχεδιασμός Βάσεων Δεδομένων

Εργαστήριο Σημασιολογικού Ιστού

ΜΑΘΗΜΑ Άνοιγμα Της Εφαρμογής Υπολογιστικών Φύλλων. 2. Κύρια Οθόνη Της Εφαρμογής Υπολογιστικών Φύλλων ΣΤΟΧΟΙ:

SPEEDO AQUABEAT. Specially Designed for Aquatic Athletes and Active People

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #2

Γράφηµα (Graph) Εργαστήριο 10. Εισαγωγή

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Ι Ενότητα 3:

Πρόβλημα 1: Αναζήτηση Ελάχιστης/Μέγιστης Τιμής

Τεχνολογίες Υλοποίησης Αλγορίθµων

Μετατροπή Συντεταγμένων σε δορυφορικές εικόνες Reproject Images

2016 IEEE/ACM International Conference on Mobile Software Engineering and Systems

4 η Εργαστηριακή Άσκηση

H SQL είναι η γλώσσα για όλα τα εμπορικά σχεσιακά συστήματα διαχείρισης βάσεων δεδομένων

Instruction Execution Times

Αποθηκευμένες Διαδικασίες Stored Routines (Procedures & Functions)

SPSS Statistical Package for the Social Sciences

ΤΕΙ Ιονίων Νήσων Εργαστηριακές Ασκήσεις στα Γεωγραφικά Συστήματα Πληροφοριών

8 ο Εργαστήριο Ευθυγράμμιση σε πλέγμα

Εργαστήριο Βάσεων Δεδομένων. Triggers

User Interactivity Nodes

Τμήμα Διοίκησης Επιχειρήσεων

Ορισμοί Σχεσιακού Μοντέλου και (απλές)τροποποιήσεις Σχέσεων στην SQL. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Σχεδιασμός Βάσεων Δεδομένων

Fractional Colorings and Zykov Products of graphs

25SMEs2009 ΠΑΡΑΔΟΤΕΑ ΕΝΟΤΗΤΑΣ ΕΡΓΑΣΙΩΝ 4: ΥΛΙΚΟ ΚΑΙ ΛΟΓΙΣΜΙΚΟ ΠΛΑΤΦΟΡΜΑΣ ΑΙΣΘΗΤΗΡΩΝ

Μεταφορές - Ναυτιλία

2 ο Σύνολο Ασκήσεων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Basic Raster Styling and Analysis

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

Physical DB Design. B-Trees Index files can become quite large for large main files Indices on index files are possible.

CTEC-153: ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ

Ενότητα 15 Μορφοποίηση της Γραφικής Παράστασης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Βάσεις Δεδομένων (4 ο εξάμηνο) Εργαστήριο MySQL #3

Παράδειγμα Insert Update Delete Alter.. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγή στη MySQL (2)

1. Κλικ στην καρτέλα Insert 2. Tables 3. Κλικ Table 4. Σύρουμε το δείκτη του ποντικιού και επιλέγουμε τον επιθυμητό αριθμό γραμμών και στηλών

Η ιευρυµένη Επιχείρηση Ενότητα Ηλεκτρονικής Μάθησης. «CourseLab» 3ο Φροντιστήριο. Ιωάννα Ταλάντη Υπ. ιδάκτωρ, Τµήµα ιοικητικής Επιστήµης & Τεχνολογίας

ΜΑΘΗΜΑ 10 Ο ΟΡΓΑΝΩΣΗ ΤΗΣ Β ΓΙΑ ΧΡΗΣΤΕΣ (NON-EXPERTS) Α. ΗΜΙΟΥΡΓΙΑ ΠΙΝΑΚΑ ΕΠΙΛΟΓΩΝ 1. TOOLS DATA UTILITIES SWITCHBOARD MANAGER YES

Σχεδιασμός Υπαιθρίων Εκμεταλλεύσεων

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 19/5/2007

ΒΙΟΣΤΑΤΙΣΤΙΚΗ Πρακτική με SPSS (1)

Architecture οf Integrated Ιnformation Systems (ARIS)

Ορισµοί Σχεσιακού Μοντέλου και Τροποποιήσεις Σχέσεων σε SQL

Εργαστήριο Σημασιολογικού Ιστού

ΚΥΠΡΙΑΚΗ ΕΤΑΙΡΕΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ CYPRUS COMPUTER SOCIETY ΠΑΓΚΥΠΡΙΟΣ ΜΑΘΗΤΙΚΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 6/5/2006

Δημιουργώντας μια εφαρμογή ζωγραφικής. 2 η Εργασία

Ενότητα 2 Εργαλεία για την αναζήτηση εργασίας: Το Βιογραφικό Σημείωμα

2 η Εργαστηριακή Άσκηση

ΔΑΒΒΕΤΑΣ ΑΘΑΝΑΣΙΟΣ ΤΕΙ ΑΘΗΝΑΣ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Χρήση του Twitter ως μέσο ενημέρωσης

Επίλυση προβλήματος με Access

Εργαστήριο Βάσεων Δεδομένων

Transcript:

Οπτικοποίηση με Prefuse Δομή / Βασικά Χαρακτηριστικά / Παράδειγμα

4 Βασικά Βήματα 1) Εισαγωγή των δεδομένων σε εσωτερικές δομές Prefuse 2) Καθορισμός του visual Abstraction 3) Δημιουργία View 4) Προσθήκη των δυνατοτήτων για διαχείριση

MVC Prefuse και το μοντέλο Model View Controller: Model: internal Prefuse data structures View: Visual Abstraction Controller: δυνατότητες user Interaction

1) Εισαγωγή Δεδομένων Το πρόγραμμα κάνει import: import prefuse.data.*; import prefuse.data.io.*; Τα δεδομένα, ανάλογα με την πηγή από την οποία προέρχονται διαβάζονται σε δομή πίνακα, γράφου ή δένδρου. Όταν γεμίζουμε πίνακα τα δεδομένα εισάγονται σε αντικείμενα της κλάσης Tupple. Οι γράφοι και τα δένδρα χρησιμοποιούν τις κλάσεις Node και Edge.

SQL To Prefuse μπορεί να φορτώνει πίνακες από σχεσιακές βάσεις δεδομένων μέσω της: prefuse.data.io.sql

Παράδειγμα Εισαγωγής Δεδομένων // 1. Load the data Graph graph = null; /* graph will contain the core data */ try { graph = new GraphMLReader().readGraph("data/socialnet.xml"); /* load the data from an XML file */ } catch (DataIOException e) { e.printstacktrace(); System.err.println("Error loading graph. Exiting..."); System.exit(1); }

<?xml version="1.0" encoding="utf-8"?> <!-- An excerpt of an egocentric social network --> <graphml xmlns="http://graphml.graphdrawing.org/xmlns"> <graph edgedefault="undirected"> <!-- data schema --> <key id="name" for="node" attr.name="name" attr.type="string"/> <key id="gender" for="node" attr.name="gender" attr.type="string"/> <!-- nodes --> <node id="1"> <data key="name">jeff</data> <data key="gender">m</data> </node> <node id="2"> <data key="name">ed</data> <data key="gender">m</data> </node> <node id="3"> <data key="name">christiaan</data> <data key="gender">m</data> </node> <node id="4"> <data key="name">emily</data> <data key="gender">f</data> </node>

<!-- edges --> <edge source="1" target="2"></edge> <edge source="1" target="3"></edge> <edge source="1" target="4"></edge> <edge source="1" target="5"></edge> <edge source="1" target="6"></edge> <edge source="1" target="7"></edge> <edge source="1" target="8"></edge> <edge source="1" target="9"></edge> <edge source="1" target="10"></edge> <edge source="1" target="11"></edge> <edge source="1" target="12"></edge> <edge source="1" target="13"></edge> <edge source="1" target="14"></edge> <edge source="1" target="15"></edge> <edge source="1" target="16"></edge> <edge source="1" target="17"></edge> <edge source="1" target="18"></edge>

2) Visual Abstraction Κλάση Visualization: Πρόκειται για την σημαντικότερη κλάση στο Prefuse, επειδή είναι αυτή η οποία κάνει την οπτικοποίηση. Π.χ. Table t = new CSVTableReader().readTable("data/population.csv"); Visualization vis = new Visualization(); VisualTable vt = vis.addtable("mytable", t); Το vt είναι μία αναφορά στο visual abstraction του πίνακα t, στην οποία συνυπάρχουν τα δεδομένα του t, μαζί με δεδομένα απεικόνισης όπως x,y συντεταγμένες, χρώμα, μέγεθος και τιμές γραμματοσειρών

// 3. setup the renderers and the render factory // labels for name LabelRenderer namelabel = new LabelRenderer("name"); namelabel.setroundedcorner(8, 8); /* namelabel decribes how to draw the data elements labeled as "name" */ // create the render factory vis.setrendererfactory(new DefaultRendererFactory(nameLabel));

// 4. process the actions // colour palette for nominal data type int[] palette = new int[]{colorlib.rgb(255, 180, 180), ColorLib.rgb(190, 190, 255)}; /* ColorLib.rgb converts the colour values to integers */ // map data to colours in the palette DataColorAction fill = new DataColorAction("socialnet.nodes", "gender", Constants.NOMINAL, VisualItem.FILLCOLOR, palette); /* fill describes what colour to draw the graph based on a portion of the data */ // node text ColorAction text = new ColorAction("socialnet.nodes", VisualItem.TEXTCOLOR, ColorLib.gray(0)); /* text describes what colour to draw the text */ // edge ColorAction edges = new ColorAction("socialnet.edges", VisualItem.STROKECOLOR, ColorLib.gray(200)); /* edge describes what colour to draw the edges */

// combine the colour assignments into an action list ActionList colour = new ActionList(); colour.add(fill); colour.add(text); colour.add(edges); vis.putaction("colour", colour); /* add the colour actions to the visualization */ // create a separate action list for the layout ActionList layout = new ActionList(Activity.INFINITY); layout.add(new ForceDirectedLayout("socialnet")); /* use a force-directed graph layout with default parameters */ layout.add(new RepaintAction()); /* repaint after each movement of the graph nodes */ vis.putaction("layout", layout); /* add the laout actions to the visualization */

// 5. add interactive controls for visualization Display display = new Display(vis); display.setsize(700, 700); display.pan(350, 350); // pan to the middle display.addcontrollistener(new DragControl()); /* allow items to be dragged around */ display.addcontrollistener(new PanControl()); /* allow the display to be panned (moved left/right, up/down) (left-drag)*/ display.addcontrollistener(new ZoomControl()); /* allow the display to be zoomed (right-drag) */

// 6. launch the visualizer in a JFrame JFrame frame = new JFrame("prefuse tutorial: socialnet"); /* frame is the main window */ frame.setdefaultcloseoperation(jframe.exit_on_close); frame.add(display); /* add the display (which holds the visualization) to the window */ frame.pack(); frame.setvisible(true); /* start the visualization working */ vis.run("colour"); vis.run("layout");