information visualization toolkit
Framework extensível Criação de Softwares interativos Free license
Componentes para layout Consultas dinâmicas e interativas Gráficos Distorções técnicas de animação Grafos
Conjunto de classes experimentais Grupo prefuse 73 Swing, Jazz e Piccolo são Java toolkits
Ajuda fórum SourceForge Bug Tacker do SourceForge Correção de bugs e submeter adicionais Você se tornar um desenvolvedor
Rede social egocêntrica Visualização básica Sociograma Interativo Modo de comparação
Information Visualization Reference Model Série de etapas definidas Tese de PhD (Data State Model)
Dados a serem visualizados Figuras, Grafos, Estrutura de Arquivos, etc Transformação dos Dados Estrutura de Dados
Grafos Listas Árvores Tabelas
Mapeamento Visual Interface Dados/Visualização Transformações Visuais
Renderização de componentes Variedade de perspectivas Múltiplas visões
Exemplos dos tipos de aplicações que podem ser construídas com o prefuse toolkit
Dispositivos de Entrada Processamento Possibilidade de Mudanças Dispositivos de saída
Table, Graph e Tree Tuple Node e Edge (itens individuais) Aggregate (conjunto de ítens) prefuse.data.expression
CSV e texto delimitado (‘\n’, ‘\t’, ‘\r’) GraphML e TreeML prefuse.data.io.sql
Manipulação de Dados Abstratos Filtering Item Registry
Action AcctionList Rendering
Mapeamento de Dados Conjunto de dados Parte dos Dados Filtering VisualItem
Sua Rotina ◦ Filter Action ◦ Assignment Action ◦ Animator Action ItemRegistry
Objeto central do Prefuse Gerencia visualização Armazena VisualItem Responde ao Filtering
Boa performance Garbage Collection Conteúdo atualizado por Actions
Componente básico Atualizam VisualItem Configuram VisualItem Filter Action
Assignment Action Animator Action Actions podem ser guardadas em ActionList
Executa sequencialmente É um action Execução configurável
Renderers ◦ API simples consiste de 3 métodos ◦ RendererFactory Display ◦ Java2D library
Visualization VisualItem NodeItem e EdgeItem
Action Associação de tarefas a itens Eventos Animações
Renderer Desenhar e computar itens RendererFactory
Display Age como uma “câmera” Control ControlAdapter prefuse.data.query
O Prefuse Toolkit originalmente fornece um framework para visualização voltado para a linguagem de programação Java Visa criar visualizações dinâmicas de dados estruturados e não estruturados.
O Prefuse Flare Toolkit oferece ferramentas de visualização e animação para ActionScript e Adobe Flash Player
Facilita a criação de visualizações interativas de dados Pode ser livremente utilizado, modificado e vendido Flare open-source software é liberado sob uma licença BSD (Copyright © 2007 Regents of the University of California)
Utiliza-se a API DRAW do Flash Concorrente: Flex Charts Vantage: Open Source
Visualização de dados para Web
Rede social LOAD Graph graph = null; try { graph = new GraphMLReader().readGraph("/socialnet.xml"); } catch ( DataIOException e ) { e.printStackTrace(); System.err.println("Error loading graph. Exiting..."); System.exit(1); }
Rede social VISUALIZAÇÃO Visualization vis = new Visualization(); vis.add("graph", graph);
Rede social RENDERS //set o nome em cada nó LabelRenderer r = new LabelRenderer("name"); r.setRoundedCorner(8, 8); // cria um render factory //inclui EdgeItems vis.setRendererFactory(new DefaultRendererFactory(r));
Rede social Processando Actions int[] palette = new int[] { ColorLib.rgb(255,180,180), ColorLib.rgb(190,190,255) }; DataColorAction fill = new DataColorAction("graph.nodes", "gender", Constants.NOMINAL, VisualItem.FILLCOLOR, palette);
Rede social Processando Actions ColorAction text = new ColorAction("graph.nodes", VisualItem.TEXTCOLOR, ColorLib.gray(0)); ColorAction edges = new ColorAction("graph.edges", VisualItem.STROKECOLOR, ColorLib.gray(200)); ActionList color = new ActionList(); color.add(fill); color.add(text); color.add(edges);
Rede social Display e controles interativos Display d = new Display(vis); d.setSize(720, 500); d.addControlListener(new DragControl()); d.addControlListener(new PanControl()); d.addControlListener(new ZoomControl());
Rede social Carregando a vizualização JFrame frame = new JFrame("prefuse example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(d); frame.pack(); frame.setVisible(true); vis.run("color"); vis.run("layout");
Rede social LOADING Graph graph = null; try { graph = new GraphMLReader().readGraph("/socialnet.xml"); } catch ( DataIOException e ) { e.printStackTrace(); System.err.println("Error loading graph. Exiting..."); System.exit(1); }
Rede social VISUALIZAÇÃO Visualization vis = new Visualization(); vis.add("graph", graph);
Rede social RENDERS //set o nome em cada nó LabelRenderer r = new LabelRenderer("name"); r.setRoundedCorner(8, 8); // cria um render factory //inclui EdgeItems vis.setRendererFactory(new DefaultRendererFactory(r));
Rede social Processando Actions int[] palette = new int[] { ColorLib.rgb(255,180,180), ColorLib.rgb(190,190,255) }; DataColorAction fill = new DataColorAction("graph.nodes", "gender", Constants.NOMINAL, VisualItem.FILLCOLOR, palette);
Rede social Processando Actions ColorAction text = new ColorAction("graph.nodes", VisualItem.TEXTCOLOR, ColorLib.gray(0)); ColorAction edges = new ColorAction("graph.edges", VisualItem.STROKECOLOR, ColorLib.gray(200)); ActionList color = new ActionList(); color.add(fill); color.add(text); color.add(edges);
Rede social Display e controles interativos Display d = new Display(vis); d.setSize(720, 500); d.addControlListener(new DragControl()); d.addControlListener(new PanControl()); d.addControlListener(new ZoomControl());
Rede social Carregando a vizualização JFrame frame = new JFrame("prefuse example"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.add(d); frame.pack(); frame.setVisible(true); vis.run("color"); vis.run("layout");