Função php para gerar gráficos com Google Chart API

Olá pessoal,

No post de hoje vou mostrar como gerar gráficos utilizando uma função php e a API Chart do Google.

Bom, para quem não conhece, o Google Chart é uma API que auxilia no processo de criação de gráficos estatísticos de maneira fácil, dinâmica e sem precisar se comunicar diretamente com um webservice ou coisa parecida.

O Google Chart é capaz de nos gerar imagens de gráficos apenas lendo os parâmetros que passamos via URL.

Para entender melhor o que estou dizendo, entre nesse link: http://chart.apis.google.com/chart?chs=500×200&chd=t:70,30&cht=p3&chl=Homens|Mulheres

Gráfico Pizza em 3D
Gráfico Pizza em 3D

 

Através dos parâmetros chs,  chd, cht e chl eu passei as informações para que fosse construído um gráfico estilo pizza3d(p3), nas dimensões 500x200px, onde as porcentagens são 70 e 30% e as referências são Homens e Mulheres.

Fácil né?

No entanto para tornar essa arte mais simples ainda, vamos construir uma função php que já nos gere o link com os parâmetros necessários. Assim, sempre que quisermos um gráfico basta chamar a função e passar os valores.

1
2
3
4
5
6
7
8
<?php
     function geraGrafico($largura, $altura, $valores, $referencias, $tipo = "p3"){
           $valores = implode(',', $valores);
           $referencias = implode('|', $referencias);
 
           return "http://chart.apis.google.com/chart?chs=". $largura ."x". $altura . "&amp;chd=t:" . $valores . "&amp;cht=p3&amp;chl=" . $referencias;
     }
?>

A função é simples também. Ela recebe a altura, largura, valores, referências e tipo do gráfico e nos retorna uma variável com a URL. Os valores e as referências devem ser passados em array e vale ressaltar que a ordem de ambos deve ser considerada uma vez que a posição 0 do array $valores associa-se ao valor 0 do array $referências e assim por diante.

Veremos agora como chamar essa função e com o link gerado mostrar o gráfico no navegador através da tag <img>

1
2
3
4
5
6
7
8
9
10
11
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>Gerador de gráficos do Google</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <?php $grafico = geraGrafico(500, 200, array("70", "30"), array("Homens", "Mulheres")) ?>
    <img src="<?php echo $grafico ?>" title="Grafico gerado pelo Google Chart" />
  </body>
</html>

E pronto! Exemplo simples mas que pode ser bastante útil. Para mais informações sobre essa API, visite http://code.google.com/intl/pt-BR/apis/chart/

Abs

Siga-me no twitter: @rafaelwendel

É formado em Sistemas de Informação, pós-graduado em Sistemas de Banco de Dados e mestre em Educação com foco em Tecnologias Sociocomunitárias. Trabalha como professor de ensino técnico e tecnológico no Instituto Federal de Educação, Ciência e Tecnologia de São Paulo ministrando disciplinas nas áreas de programação, banco de dados, desenvolvimento de projetos e engenharia de software.

Posts relacionados

Comentários

  1. Muito bom, mas pergunto se há possibilidade de baixar API do google e fazê-lo funcionar em um servidor local, ou seja, sem a obrigatoriedade de ter uma conexão com a internet.

  2. E aí Rafael blz cara?

    Gostaria de fazer um gráfico em formato de pizza para na minha loja virtual! Inclusive gostaria de fazer com duas fatias, uma azul para o sexo feminino e uma rosa para o sexo masculino, mas gostaria de puxar essas informações baseado nas minhas vendas. Tem como embutir isso nesse gráfico e inseri-lo no meu e-commerce?

    Grato desde já!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *