1
Un paseo por la Visualización en siete
días
J AVASCRIPT/ JAVA/ FLASH
2
Día 5 Un paseo por la Visualización en 7 días
I N D I C E
Google API
Protovis
Prefuse
Visualización Redes Java / javascript Flash
Juan José Martín 3
¿Qué es Prefuse?
Juan José Martín 4
Visión general
• Simplificar el proceso de:
– Representación y manejo
eficiente de datos
– Mapeo de datos a
representaciones visuales
– Interacción con los datos
• Construir aplicaciones de
escritorio y aplicaciones Web
(Applet)
• Independiente del SO (JVM)
• Galería de ejemplos
Juan José Martín 5
Componentes nativos
• Métodos de E/S de datos
• Estructuras de datos
• Componentes para color, tamaño y forma
• Componentes de layout
• Motor de simulación de fuerzas físicas
• Codificación de caracteres
• Técnicas de distorsión
• Animación
• Consultas dinámicas/Búsquedas integradas
• …
Juan José Martín 6
Alternativas a Prefuse
• Piccolo – Librería para gráficos 2D
estructurados cuyo punto fuerte son las
interfaces de usuario ampliables (ZUI).
• Visualization Toolkit (VTK) – Librería gráfica y
de visualización 3D de propósito general.
• JUNG – Librería de procesamiento y
visualización de grafos o redes
• The InfoVis Toolkit - herramienta de desarrollo
de gráficos interactivos.
Juan José Martín 7
Conceptos
• Visualization: objeto central que maneja la visualización
– Almacén de abstracción de datos y representación visual de
datos
– Tareas de filtrado y renderización
• Action: rutina de transformación
– Combinadas en el contenedor ActionList
– ActionList ejecutado manualmente por usuario o
automáticamente por Visualization
• Display: componente gráfico que representa los
elementos visuales de Visualization
– Control de zoom y movimiento
– Gestión de ControlListeners para procesamiento de acciones de
usuario
Juan José Martín 8
Ciclo de visualización 1/4
Juan José Martín 9
Ciclo de visualización 2/4
Source Data y Data Table
• Source Data
– Datos iniciales
– Ficheros formateados (CSV, TSV)
– Bases de datos
• Data Table
– Almacén de datos abstractos en forma tabular
– Los grafos y árboles se almacenan internamente
como dos tablas (nodos y arcos)
– No almacena información visual
Juan José Martín 10
Ciclo de visualización 3/4
Visual Abstraction
• Generación de representaciones
visuales (VisualItems)
• Proceso de correlación entre
abstracción de datos y VisualItems
– Filtrado
– Establecimiento de layout (ForceDirectedLayout,
TreeLayout, ...)
– Asignación de atributos visuales a los VisualItems
Juan José Martín 11
Ciclo de visualización 4/4
View
• Renderers:
– Encargados de pintar un VisualItem
– Encargados de mantener los límites de un
VisualItem
– Manejados por RendererFactory asignado a
la Visualización
– El renderizado se realiza cada vez que se
repinta el Display de la Visualización
Juan José Martín 12
Estructura de paquetes
Juan José Martín 13
Un ejemplo: Scatterplot 1/9
Carga de los datos iniciales
• Datos iniciales: fichero con
valores separados por
espacios.
Juan José Martín 14
Un ejemplo: Scatterplot 2/9
Creación de una abstracción visual
• Asociación a un grupo de datos
Juan José Martín 15
Un ejemplo: Scatterplot 3/9
Establecer las acciones
• Acciones para establecer el layout
• Acciones para establecer el color, forma, …
Juan José Martín 16
Un ejemplo: Scatterplot 4/9
• Asociar las acciones a la visualización
Juan José Martín 17
Un ejemplo: Scatterplot 5/9
Establecer los encargados del renderizado
• Personalizan la renderización de los
VisualItems de la visualización
Juan José Martín 18
Un ejemplo: Scatterplot 6/9
Crear una interfaz de usuario para la
visualización
• Establecer Las propiedades de la interfaz
• Asociar los controles de interacción del usuario
Juan José Martín 19
Un ejemplo: Scatterplot 7/9
Iniciar la visualización
• Crear un componente visual (ventana) donde incluir la
visualización
• Lanzar la ejecución de la visualización
Juan José Martín 20
Un ejemplo: Scatterplot 8/9
Juan José Martín 21
Un ejemplo: Scatterplot 9/9
Una simple modificación
• Cambiamos el color de las figuras
• Asociamos la forma a un dato de la tabla
Juan José Martín 22
Gráficos en la Web
• Posibilidad de incluir los gráficos en la Web mediante
Applets
• Prefuse proporciona recubrimientos de Applets para
simplificar el proceso
Juan José Martín 23
Entorno de desarrollo
• Librería Prefuse disponible en:
http://prefuse.org/download
• Requisitos
– JDK 1.4.2 o superior
• ¿Cómo ejecutar los ejemplos?
– Eclipse: Run as Java Application
– Consola: java –cp prefuse.jar Ejemplo.java
Juan José Martín 24
Stacked Chart
• Fuente de datos:
turkey2010_day_count/keywords_day_count
• Modificación de la estructura de la tabla de
VisualItems
• Renderer personalizado
• Layout StackedChart
• Control de zoom y
movimiento
• Tooltips personalizados
Juan José Martín 25
Tree Map
• Fuente de datos:
turkey2010_players/Players_pais
• Creación de un objeto abstracto Tree a partir de los
datos
• Grupos predefinidos de un grafo
• Filtros y decoradores
• Múltiples Layouts y
Renderers
• Facilidades para realizar
consultas
• Panel de búsqueda
Juan José Martín 26
Graph View 1/2
• Fuente de datos
turkey2010_mentions/Most_mentions
• Grafo dirigido
• ForceDirectedLayout
• Modelo físico
• Manejo de fuerzas
Juan José Martín 27
Graph View 2/2
• Fuente de datos
turkey2010_mentions/Top_mentions
• Grafo dirigido
• ForceDirectedLayout
• Modelo físico
• Manejo de fuerzas
• Modificación de las propiedades
de las aristas
Juan José Martín 28
Radial Graph View
• Fuente de datos
turkey2010_mentions/Top_mentions
• Grafo dirigido
• Ordenación de nodos dirigida por
diferentes layouts
– RadialTreeLayout
– BalloonTreeLayout
– NodeLinkTreeLayout
Juan José Martín 29
Conclusiones
• Curva de aprendizaje bastante
pronunciada
• Potente librería. Gran juego de
componentes
• Promueve una arquitectura clara y
bien diseñada de las aplicaciones
• Posibilidad de adaptación a requisitos
particulares, aunque no de forma
sencilla
• Comunidad de desarrolladores activa
Juan José Martín 30
Mas información
• Documentación
http://prefuse.org/doc/manual
http://www.infovis-wiki.net/index.php/Prefuse
• Ayuda
http://prefuse.org/doc/faq
http://sourceforge.net/forum/forum.php?forum_id=343013
http://goosebumps4all.net/34all/bb/forumdisplay.php?fid=18
• Ejemplos
http:/code.google.com/p/camon
Juan José Martín 31
Día 5 Visualizar
Muchas gracias por vuestra atención
Juan José Martín Rodríguez
Contacto: jjmr83@gmail.com

Visualización con Prefuse

  • 1.
    1 Un paseo porla Visualización en siete días J AVASCRIPT/ JAVA/ FLASH
  • 2.
    2 Día 5 Unpaseo por la Visualización en 7 días I N D I C E Google API Protovis Prefuse Visualización Redes Java / javascript Flash
  • 3.
    Juan José Martín3 ¿Qué es Prefuse?
  • 4.
    Juan José Martín4 Visión general • Simplificar el proceso de: – Representación y manejo eficiente de datos – Mapeo de datos a representaciones visuales – Interacción con los datos • Construir aplicaciones de escritorio y aplicaciones Web (Applet) • Independiente del SO (JVM) • Galería de ejemplos
  • 5.
    Juan José Martín5 Componentes nativos • Métodos de E/S de datos • Estructuras de datos • Componentes para color, tamaño y forma • Componentes de layout • Motor de simulación de fuerzas físicas • Codificación de caracteres • Técnicas de distorsión • Animación • Consultas dinámicas/Búsquedas integradas • …
  • 6.
    Juan José Martín6 Alternativas a Prefuse • Piccolo – Librería para gráficos 2D estructurados cuyo punto fuerte son las interfaces de usuario ampliables (ZUI). • Visualization Toolkit (VTK) – Librería gráfica y de visualización 3D de propósito general. • JUNG – Librería de procesamiento y visualización de grafos o redes • The InfoVis Toolkit - herramienta de desarrollo de gráficos interactivos.
  • 7.
    Juan José Martín7 Conceptos • Visualization: objeto central que maneja la visualización – Almacén de abstracción de datos y representación visual de datos – Tareas de filtrado y renderización • Action: rutina de transformación – Combinadas en el contenedor ActionList – ActionList ejecutado manualmente por usuario o automáticamente por Visualization • Display: componente gráfico que representa los elementos visuales de Visualization – Control de zoom y movimiento – Gestión de ControlListeners para procesamiento de acciones de usuario
  • 8.
    Juan José Martín8 Ciclo de visualización 1/4
  • 9.
    Juan José Martín9 Ciclo de visualización 2/4 Source Data y Data Table • Source Data – Datos iniciales – Ficheros formateados (CSV, TSV) – Bases de datos • Data Table – Almacén de datos abstractos en forma tabular – Los grafos y árboles se almacenan internamente como dos tablas (nodos y arcos) – No almacena información visual
  • 10.
    Juan José Martín10 Ciclo de visualización 3/4 Visual Abstraction • Generación de representaciones visuales (VisualItems) • Proceso de correlación entre abstracción de datos y VisualItems – Filtrado – Establecimiento de layout (ForceDirectedLayout, TreeLayout, ...) – Asignación de atributos visuales a los VisualItems
  • 11.
    Juan José Martín11 Ciclo de visualización 4/4 View • Renderers: – Encargados de pintar un VisualItem – Encargados de mantener los límites de un VisualItem – Manejados por RendererFactory asignado a la Visualización – El renderizado se realiza cada vez que se repinta el Display de la Visualización
  • 12.
    Juan José Martín12 Estructura de paquetes
  • 13.
    Juan José Martín13 Un ejemplo: Scatterplot 1/9 Carga de los datos iniciales • Datos iniciales: fichero con valores separados por espacios.
  • 14.
    Juan José Martín14 Un ejemplo: Scatterplot 2/9 Creación de una abstracción visual • Asociación a un grupo de datos
  • 15.
    Juan José Martín15 Un ejemplo: Scatterplot 3/9 Establecer las acciones • Acciones para establecer el layout • Acciones para establecer el color, forma, …
  • 16.
    Juan José Martín16 Un ejemplo: Scatterplot 4/9 • Asociar las acciones a la visualización
  • 17.
    Juan José Martín17 Un ejemplo: Scatterplot 5/9 Establecer los encargados del renderizado • Personalizan la renderización de los VisualItems de la visualización
  • 18.
    Juan José Martín18 Un ejemplo: Scatterplot 6/9 Crear una interfaz de usuario para la visualización • Establecer Las propiedades de la interfaz • Asociar los controles de interacción del usuario
  • 19.
    Juan José Martín19 Un ejemplo: Scatterplot 7/9 Iniciar la visualización • Crear un componente visual (ventana) donde incluir la visualización • Lanzar la ejecución de la visualización
  • 20.
    Juan José Martín20 Un ejemplo: Scatterplot 8/9
  • 21.
    Juan José Martín21 Un ejemplo: Scatterplot 9/9 Una simple modificación • Cambiamos el color de las figuras • Asociamos la forma a un dato de la tabla
  • 22.
    Juan José Martín22 Gráficos en la Web • Posibilidad de incluir los gráficos en la Web mediante Applets • Prefuse proporciona recubrimientos de Applets para simplificar el proceso
  • 23.
    Juan José Martín23 Entorno de desarrollo • Librería Prefuse disponible en: http://prefuse.org/download • Requisitos – JDK 1.4.2 o superior • ¿Cómo ejecutar los ejemplos? – Eclipse: Run as Java Application – Consola: java –cp prefuse.jar Ejemplo.java
  • 24.
    Juan José Martín24 Stacked Chart • Fuente de datos: turkey2010_day_count/keywords_day_count • Modificación de la estructura de la tabla de VisualItems • Renderer personalizado • Layout StackedChart • Control de zoom y movimiento • Tooltips personalizados
  • 25.
    Juan José Martín25 Tree Map • Fuente de datos: turkey2010_players/Players_pais • Creación de un objeto abstracto Tree a partir de los datos • Grupos predefinidos de un grafo • Filtros y decoradores • Múltiples Layouts y Renderers • Facilidades para realizar consultas • Panel de búsqueda
  • 26.
    Juan José Martín26 Graph View 1/2 • Fuente de datos turkey2010_mentions/Most_mentions • Grafo dirigido • ForceDirectedLayout • Modelo físico • Manejo de fuerzas
  • 27.
    Juan José Martín27 Graph View 2/2 • Fuente de datos turkey2010_mentions/Top_mentions • Grafo dirigido • ForceDirectedLayout • Modelo físico • Manejo de fuerzas • Modificación de las propiedades de las aristas
  • 28.
    Juan José Martín28 Radial Graph View • Fuente de datos turkey2010_mentions/Top_mentions • Grafo dirigido • Ordenación de nodos dirigida por diferentes layouts – RadialTreeLayout – BalloonTreeLayout – NodeLinkTreeLayout
  • 29.
    Juan José Martín29 Conclusiones • Curva de aprendizaje bastante pronunciada • Potente librería. Gran juego de componentes • Promueve una arquitectura clara y bien diseñada de las aplicaciones • Posibilidad de adaptación a requisitos particulares, aunque no de forma sencilla • Comunidad de desarrolladores activa
  • 30.
    Juan José Martín30 Mas información • Documentación http://prefuse.org/doc/manual http://www.infovis-wiki.net/index.php/Prefuse • Ayuda http://prefuse.org/doc/faq http://sourceforge.net/forum/forum.php?forum_id=343013 http://goosebumps4all.net/34all/bb/forumdisplay.php?fid=18 • Ejemplos http:/code.google.com/p/camon
  • 31.
    Juan José Martín31 Día 5 Visualizar Muchas gracias por vuestra atención Juan José Martín Rodríguez Contacto: jjmr83@gmail.com

Notas del editor

  • #4 Framework software extensible para crear aplicaciones de visualización de información Java 1.4 Licencia BSD prefuse-beta 2007.10.21 Versiones de 2006 a 2007 Semilla para Prefuse Flare Pero la comunidad sigue activa
  • #6 Abstracción y recubrimiento I/O methods CSV, (tab-)delimited text, GraphML (XML), TreeML (XML) data structures table, graph, tree provides indexing, queries components for color, size, and shape encodings layout components distortion techniques animation (e.g., smooth transitions) dynamic queries / interactive filtering integrated text search physical force simulation engine SQL-like expression language for writing queries
  • #7 Piccolo: OpenSource Piccolo guarda una estructura jerárquica de objetos gráficos y cámaras que permite a cualquier nodo de la jerarquía ser trasladado, escalado, rotado o cizallado arbitrariamente al tiempo que se puede seleccionar cualquier vista de cualquier cámara, lo que ofrece una gran flexibilidad de visualización.  "Zoomable User Interfaces" ( ZUIs o interfaces de usuario ampliables) en las que el usuario dispone de una interfaz virtual infinitamente escalable en la que se puede ir de lo general a lo particular sin dificultad. Este tipo de interfaces incluyen el concepto de zoom semántico mediante el cual la representación ampliada de un objeto no es simplemente un escalado de su aspecto geométrico sino que la forma o representación del mismo pueden variar con la escala para favorecer la comprensión de su naturaleza. Por ejemplo, a una cierta escala un objeto puede ser un punto, a otra una caja con una etiqueta y a otra un rectángulo con pequeños caracteres. VTK: OpenSource JUNG: OPENSOURCE JUNG — the Java Universal Network/Graph Framework que proporciona un lenguaje extensible para el modelado, analisis y visualización de datos que representan un grafo o una red InfoVis Toolkit: onpensource Última versión: 0.9 beta (2005) Prefuse está más orientado a aquellos datos cuya estructura se corresponde con la de un grafo (véase el artículo 137 sobre grafos). Entre ellas se incluyen las redes, las jerarquías, árboles etc.
  • #8 1 Visualization N ActionList 1 Visualization N Display
  • #10 Los datos iniciales se cargan en Data Tables mediante readers No almacena información visual, se usa su análogo visual
  • #11 Action list (únicos o repetidos en el tiempo) Asignación: color, tamaño, tipo de fuente...
  • #15 Se crean VisualItems para cada Item de los datos