Ferramentas para exibir dados

Crie visualização de dados com componentes em ActionScript, Java e JavaScript

Visualização de dados é um campo novo que permite exibir um conjunto de informação de forma visual e interativa. A princípio, qualquer linguagem de programação que rode no cliente permite construir essas visualizações, mas neste post cubro três alternativas, em ActionScript (Flex/Flash), Java e JavaScript.

Este artigo é mais técnico sobre as tecnologias existentes, para um texto de apresentação sobre esse assunto, leia o post Visualização de dados.

ActionScript

Flare

Flare é uma biblioteca em ActionScript 3, totalmente open source, criada por Jeffrey Heer, que permite criar desde gráficos simples até visualizações interativas e complexas.

flare.jpg

Entre as possibilidades existentes, encontra-se o controle sobre expandir/contrair os descendentes de um nó, a capacidade de aplicar layouts que obedecem às leis da física e criam uma visualização orgânica bem como filtros de distância, que distorcem o layout como uma lente fish eye, efeitos de animação e codificação visual e ainda muito mais.

Para conhecer todas as opções que essa biblioteca oferece, consulte a API, a demonstração e também as aplicações já feitas com Flare. Apesar de bem completa, para iniciar no Flare é meio difícil, pois não existem muito tutoriais online, porém existem dois fóruns, o do SourceForge e o do GooseBumps.

BirdEye

BirdEye é um projeto criado pela comunidade feito em ActionScript 3, totalmente open source com cinco componentes distintos voltados para a visualização de dados.

ravis.jpg

RaVis (Relational Analysis) é o componente criado para exibir dados relacionais com diferentes layouts e possibilidades. GeoVis (GeoSpatial Analysis) exibe informações gráficas plotadas em uma mapa. QaVis (Quantitative Analysis) é o componente voltado para exibição de gráficos como barra, treemap e bubbles em 3D. O TaVis (Temporal Analysis) é voltado para exibição em timeline e o GuVis  (General Utility) oferece ferramentas como a distorção focal.

Kap Visualizer

Kap Visualizer é um componente para Flex com uma licença estranha pois não é open source e não é permitido comercializar aplicações feito com ele, porém é exposto como freeware...

kapit.jpg

É o mais fechado quanto a possibilidades, por ser desenvolvido apenas por uma empresa e não uma comunidade, contudo é super fácil de usar e o resultado é bem estável e rápido. Confira a aplicação de demonstração e conheça também os outros componentes do Kap Lab.

SpringGraph Flex Component

SpringGraph é um componente criado para Flex 2, contudo para uma solução mais simples funciona bem, como demonstra a aplicação SpringGraphDemo.

Graph Gear

Graph Gear é simples, mas eficaz, capaz de renderizar os relacionamentos criados por um xml com o padrão GraphML. O diferencial deste componente é a capacidade de interagir facilmente com comandos e eventos em JavaScript.

Java

Prefuse

Prefuse foi criado por Jeffrey Heer (que posteriormente criou o Flare) usando a biblioteca de gráficos 2D do Java. Esse framework permite criar applets e aplicativos, pois integra fácil com o Swing. Ele vem com um conjunto de recursos para modelagem de dados, visualização e interatividade, possibilitando a criação de visualizações em diferentes layouts, suporta animação e ainda pode conectar ao banco de dados e oferecer uma pesquisa integrada.

docburst.jpg

DocuBurst, criado com o Prefuse por Christopher Collins

Processing

Processing é uma linguagem de programação própria e um ambiente open source feito em Java voltado para programar imagens, animações e interatividade. Com ele é possível criar não só visualizações de dados, mas também imagens e animações aleatórias que respeitem um padrão físico ou matemático.

Vou citar dois bom exemplos feitos com Processing. Um é o projeto Oasis, criado por Yunsil Heo e Hyunwoo Bang, capaz de exibir imagens que lembram um ambiente aquático onde o usuário pode tocar e interagir com os elementos.

oasis.jpg

O outro exemplo é o trabalho ElectroPlastique de Marius Watz, que é um artista com um portfólio interessante que inclui não só Processing, mas também Java 2D.

electro.jpg

Para aprender, existe uma lista de livros disponível no site do Processing, valendo a pena conferir o Learning Processing de Daniel Shiffman.

JavaScript

Protovis

Protovis é um pequeno arquivo js, em JavaScript, capaz de produzir visualização de dados usando o elemento Canvas. O resultado perde um pouco ao comparar com os feito em Java e ActionScript, mas sem dúvida é uma boa referência.

javascriptprotovis.jpg

Conclusão

O Protovis em Java Script é muito básico em relação às alternativas, porém pode ser a solução ideal quando não se pode contar com muitos recursos no browser. Já o Java permite um maior gerenciamento de recurso como aplicativo, porém é uma linguagem de programação bem mais complexa e difícil de aprender e os applets hoje em dia não são nada populares, enquanto o flash player chega a quase 100% dos usuários.

Os componentes de visualização em ActionScript costumam ser um pouco mais lento, pois o Flash Player demora para processar quando existem pequenos elementos em um número muito grande, aliás, eu diria que o máximo de itens giraria em torno de 500 a 1000.

Na verdade, acho que não existe como dizer que um componente é melhor que o outro, pois cada um tem como oferecer a melhor e mais rápida solução em um determinado caso. Mas eu pessoalmente, gosto mais do Flare, o resultado da busca no meu site é feito em Flare, por exemplo.

E se quiser conhecer os sites que estou visitando sobre visualização de dados, consulte minha conta no Delicious.