Perl + GD Graphic Library: Exemplo 3 (Gráfico Barras 3D)
Este exemplo utilizará o módulo GD::Graph para a criação de um Gráfico no estilo Barras 3D.
Para este exemplo, o módulo utilizado foi:
GD::Graph::bars3d;
Obs.: Usamos ‘GD::Graph::bars3d’ pois nosso objetivo é criar um gráfico barras 3d.
Assim como no Exemplo 2, carregamos os dados em dois arrays diferentes:
my @campos = (‘Out 2007′,’Nov 2007′,’Dez 2007′,’Jan 2008′,’Fev 2008′,’Mar 2008’);
my @valores = (‘547′,’2282′,’2798′,’2354′,’4326′,’357’);
Estes dois itens serão armazenados em um array especial que guardará o endereço tanto array dos campos quanto a dos valores para que possa então esboçá-los no gráfico.
my @graf = (\@campos,\@valores);
Com todos os dados em mãos chamamos a função que criará um novo gráfico.
my $grafico = GD::Graph::bars3d->new(500, 300);
Agora temos na variável $grafico uma nova instância de gráfico de barras com 500x300px.
Para montar o gráfico utilizamos a função Graph set , passando a expessura da barra, o espaçamento entre as barras, o rótulo horizontal, vertical e o título do gráfico:
$grafico->set(
bar_width => ’25’, # Expessura das barras
bar_spacing => ‘4’, # Espaçamento entre as barras
x_label => ‘Mes’, # Rótulo horizontal
y_label => ‘Visitas Totais’, # Rótulo vertical
title => ‘Visitas Mensais de “Um Site Qualquer”‘, # Título do gráfico
) or warn $grafico->error;
Com isto o gráfico será criado, a menos que o warn retorne algum erro.
O próximo passo é passar os dados para o esboço.
A função plot faz isto:
$grafico = $grafico->plot(\@graf) or die $grafico->error;
Se nenhum erro for retornado é sinal de que o gráfico foi criado com sucesso.
Nos resta então apenas exibí-lo na tela:
binmode STDOUT;
print “Content-type: image/png\n\n”;
print $grafico->png;
Veja o Código Completo:
(gd-exemplo3.cgi)
#!/usr/bin/perl
use GD;
use GD::Graph::bars3d;
# Usamos ‘GD::Graph::3dbars’ pois nosso objetivo é criar um gráfico de barras######## Cria as variáveis para exibir o gráfico ########
my @campos = (‘Out 2007′,’Nov 2007′,’Dez 2007′,’Jan 2008′,’Fev 2008′,’Mar 2008’);
my @valores = (‘547′,’2282′,’2798′,’2354′,’4326′,’357′);
my @graf = (\@campos, \@valores);
################################
######## Criação da imagem ########my $grafico = GD::Graph::bars3d->new(500, 300);
# Os valores de new são as dimensões do gráfico$grafico->set(
bar_width => ’25’, # Expessura das barras
bar_spacing => ‘4’, # Espaçamento entre as barras
x_label => ‘Mes’, # Rótulo horizontal
y_label => ‘Visitas Totais’, # Rótulo vertical
title => ‘Visitas Mensais de “Um Site Qualquer”‘, # Título do gráfico
) or warn $grafico->error;$grafico = $grafico->plot(\@graf) or die $grafico->error;
##########################
####### Exibe o gráfico ######
binmode STDOUT;
print “Content-type: image/png\n\n”;
print $grafico->png;
Categorias
- Artigos (6)
- FAQ (2)
- Funções (3)
- Módulos (16)
- Archive Zip (2)
- CGI (2)
- GD: Graphic Library (7)
- Image Magick (5)
- Tutoriais (3)
- Variáveis (2)