information visualization toolkit. framework extensível criação de softwares interativos free...
TRANSCRIPT
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
http://prefuse.org/media/prefuse.wmv
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
http://flare.prefuse.org/demo
Rede social LOADGraph 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 EdgeItemsvis.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 LOADINGGraph 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 EdgeItemsvis.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");