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!