Perl + GD Graphic Library: Exemplo 4 (Gráfico Pizza)
Este exemplo utilizará o módulo GD::Graph para a criação de um Gráfico no estilo Pizza.
Para este exemplo, o módulo utilizado foi:
GD::Graph::pie;
Obs.: Usamos ‘GD::Graph::pie’ pois nosso objetivo é criar um gráfico pizza.
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′,’1037’);
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::pie->new(320, 300);
Agora temos na variável $grafico uma nova instância de gráfico de barras com 320x300px.
Para montar o gráfico utilizamos a função Graph set , passando o ângulo inicial, o ângulo nulo, o rótulo, o título do gráfico, valor do 3d, expessura 3d:
$grafico->set(
start_angle => ‘0’, # Ângulo de onde iniciará os gráficos
suppress_angle => ‘0’, # Se o nome do campo for menor que a área mencionada aqui ele não será exibido.
label => ‘Exemplo de Gráfico Circular’, # Texto a aparecer abaixo do gráfico
title => ‘Visitas Mensais de “Um Site Qualquer”‘, # Título do gráfico
‘3d’ => ‘1’, # 1: Adiciona efeito 3d
pie_height => ’32’, # Expessura do efeito 3d. Ideal 0,1*altura
) 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/pngnn”;
print $grafico->png;
Veja o Código Completo:
(gd-exemplo4.cgi)
#!/usr/bin/perl
use GD;
use GD::Graph::pie;
# Usamos ‘GD::Graph::pie’ pois nosso objetivo é criar um gráfico de pizza######## 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′,’1037’);
my @graf = (@campos, @valores);
################################
######## Criação da imagem ########
my $grafico = GD::Graph::pie->new(320, 300);
# Os valores de new são as dimensões do gráfico$grafico->set(
start_angle => ‘0’, # Ângulo de onde iniciará os gráficos
suppress_angle => ‘0’, # Se o nome do campo for menor que a área mencionada aqui ele não será exibido.
label => ‘Exemplo de Gráfico Circular’, # Texto a aparecer abaixo do gráfico
title => ‘Visitas Mensais de “Um Site Qualquer”‘, # Título do gráfico
‘3d’ => ‘1’, # Se 1: Adiciona efeito 3d
pie_height => ’32’, # Expessura do efeito 3d. Ideal 0,1*altura
) or warn $grafico->error;$grafico = $grafico->plot(@graf) or die $grafico->error;
##########################
####### Exibe o gráfico ######
binmode STDOUT;
print “Content-type: image/pngnn”;
print $grafico->png;
Perl + GD Graphic Library: Exemplo 2 (Gráfico de Área)
Este exemplo utilizará o módulo GD::Graph para a criação de um Gráfico no estilo Área.
Assim, as primeiras instruções do programa serão:
use GD;
e
use GD::Graph::area;
Obs.: Usamos ‘GD::Graph::area’ pois nosso objetivo é criar um gráfico de área.
Tendo então os módulos carregados, podemos iniciar a construção do programa.
Neste exemplo, assim como nos dois artigos posteriores, colocarei exemplos ficticios em duas listas, de campos e de valores, para a demonstração no programa.
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 nos resta agora chamar a função que criará um novo gráfico.
Esta é a:
my $grafico = GD::Graph::area->new(500, 300);
Agora temos na variável $grafico uma nova instância de gráfico de área com 500x300px.
Para montar o gráfico utilizamos a função Graph set , passando o rótulo horizontal, o rótulo vertical e o título do gráfico:
$grafico->set(
x_label => ‘Mes’, # Rótulo horizontal
y_label => ‘Número de Visitas’, # 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/pngnn”;
print $grafico->png;
Veja o Código Completo:
(gd-exemplo2.cgi)
#!/usr/bin/perl
use GD;
use GD::Graph::area;
# Usamos ‘GD::Graph::area’ pois nosso objetivo é criar um gráfico de área######## 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::area->new(500, 300);
# Os valores de new são as dimensões do gráfico$grafico->set(
x_label => ‘Mes’, # Rótulo horizontal
y_label => ‘Número de Visitas’, # 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/pngnn”;
print $grafico->png;