Hypatia: cola Perl entre DBI e módulos de visualização de dados

Hypatia é uma nova API de visualização de dados escrita em Perl. Ele tira proveito de vários recursos do Modern Perl, incluindo Moose e Dist :: Zilla (na verdade, até o momento em que este livro foi escrito, o único código confirmado é para uma construção do Dist :: Zilla).

Para relatórios e análises de dados, muitas vezes é útil ter tabelas e gráficos de vários tipos: gráficos de linhas, gráficos de barras, histogramas, etc. Claro, o CPAN tem módulos para visualização de dados – na verdade, existem alguns deles , cada um com recursos diferentes e sintaxes totalmente diferentes. O objetivo do Hypatia é fornecer uma camada entre o DBI e esses módulos de visualização de dados, para que se possa obter um gráfico básico “sem frescuras” com o mínimo de conhecimento possível da sintaxe do pacote de visualização de dados específico.

Assim, por exemplo, para obter um gráfico de linha em Chart :: Clicker, pode-se fazer o seguinte:

use strict;
use warnings;
use Hypatia;

my $hypatia=Hypatia->new({
back_end
=>"Chart::Clicker",
graph_type
=>"Line",
dbi
=>{
dsn
=>"dbi:MySQL:dbname=database;host=localhost",
username
=>"jdoe",
password
=>"sooperseekrit",
query
=>"select DATE(time_of_sale) as date
,sum(revenue) as daily_revenue

from widget_sales

group by DATE(time_of_sale)"

},
columns
=>{"x"=>"date","y"=>"daily_revenue"}
});

#grabs data from the query and puts it into a Chart::Clicker line graph
my $cc=$hypatia->chart;

#Since $cc is a Chart::Clicker object,
#we can now do whatever we want to it.

$cc
->title->text("Total Daily Revenue for Widget Sales");
$cc
->write_output("daily_revenue.png");

No momento, há apenas suporte limitado para parte do Chart :: Clicker, mas isso se expandirá para incluir suporte para:

  • GraphViz2
  • R (via Statistics :: R).
  • GD :: Graph (incluindo suporte 3D com GD :: Graph3D).
  • E muitos mais!