PplWare Mobile

PHP é a Quinta-Feira – Gráficos em PHP com pChart

                                    
                                

Este artigo tem mais de um ano


Autor: Pedro Pinto


  1. Rui Costa says:

    Pedro,

    Agora que falas em gráficos, acabo por me lembrar de te perguntar se por acaso tens conhecimento do nome da library que permite criar gráficos ao estilo do google analytics.

    Bom artigo.

  2. petersaints says:

    Para mim o melhor que anda aí em termos de gráficos são:

    HighCharts: http://www.highcharts.com/
    JSCharts: http://www.jscharts.com/

    Mas este dois são pagos, isto é, para uso pessoal pode-se usar mas para uso comercial há que pagar uma licença.

    Mas se tiver mesmo que ser Free posso aconselhar dois que tenho usado para projectos meus:
    OpenFlashChart 2: http://teethgrinder.co.uk/open-flash-chart-2/
    (mas este como é baseado em Flash tenho vindo a evitar o seu uso recenetemente)
    Ou pode-se usar a maravilhosa API da Google: http://code.google.com/apis/visualization/interactive_charts.html
    (esta está ao nível dos que referi acima mas usa como base os server da Google, o que pode não interessar em alguns casos)

  3. Mestre says:

    grande artigo…tava mesmo a precisar disto. ja é a 3x que me acontece com php =D

    obrigado e continuem com o bom trabalho. parabens

  4. Também já trabalhei com o Open Flash Chart, gerando o JSON em PHP, mas é em Flash, o que nos dias de hoje começa a ser negativo. Conheço as soluções jQuery, funcionam bem, já usei o hightcharts e é espectacular, permite uma interactividade fantástica. Mas para esta rúbrica de PHP tive de pegar numa solução verdadeiramente PHP. 🙂

  5. miguel says:

    Obrigado, estava mesmo a precisar disto para um trabalho.

    Continua com o bom trabalho, todas as 5as cá passo para ver o novo post.

  6. JohnCN says:

    Olá! óptimo tutorial!
    Estive a testar mas não consegui que fosse produzido nenhum gráfico. O código não dá erros e apenas produz um monte de caracteres estranho (como um dump do ficheiro binário).
    Alguma sugestão ?

  7. Boas John, esse código é a imagem do gráfico, mas o browser não está a interpretá-lo como uma imagem. Normalmente isso acontece-me quando estou a programar e vou fazendo F5 à página e quando o gráfico sai correctamente o browser já não interpreta como uma imagem. Limpa o cache do browser e em vez de fazeres F5 para actualizar põe o url da pagina mesmo na barra de endereço e abre. Normalmente quando isso me acontece resolvo assim. Se não funcionar apita! 😉

  8. Gonçalo says:

    Boas.
    Eu gostava que alguém me explicasse sucintamente como é que eu ponho o pChart a funcionar..
    Para onde é que tenho que extrair a pasta que se faz o download do site pChart?
    Desde já obrigado e peço desculpa pela falta de clareza..

    • Pedro Peixoto says:

      Bom dia Gonçalo, não sei em que ponto é que queres que comece a explicação. Tens o PHP e o apache instalados? Tens a pasta www, ou htdocs ou algo do genero, onde colocas os teus ficheiros… É nessa pasta ou numa subpasta que tens que ter o pchart extraído! Depois segues este tutorial…
      Explica melhor qual é o teu problema, para te poder ajudar.

  9. Pedro says:

    Boa Tarde a todos! Tendo em conta a Google Chart API, pedia ajuda a alguém para perceber qual o meu erro… Estou a tentar montar um grafico de barras com dados mensais que são lidos de MSSQL. Não consigo fazer nada aparecer no gráfico.

    <?php
    $conexão = mssql_connect("SERVER", "", "") or die("Não foi possível a conexão com o servidor");

    mssql_select_db("DB",$conexão) or die("Não foi possível selecionar o banco de dados");

    $sql = "SELECT MONTH(CABECDOC.DATA) AS MES,
    round(sum(LINHASDOC.QUANTIDADE*ABS(LINHASDOC.PRECUNIT)- LINHASDOC.DESCONTOCOMERCIAL),0) as VENDAS
    FROM LINHASDOC
    INNER JOIN CABECDOC ON CABECDOC.ID= LINHASDOC.IDCABECDOC
    WHERE YEAR(LINHASDOC.DATA)=2010
    group by MONTH(CABECDOC.DATA)";

    $result = mssql_query($sql);

    /* Escreve resultados até que não haja mais linhas na tabela */
    while($consulta = mssql_fetch_array($result)) {
    print "$consulta[MES] – $consulta[VENDAS]”;
    }

    $gratab = array ();

    while($consulta= mssql_fetch_array($result)) {
    array_unshift ($gratab, $consulta);
    }

    /** Inclusao Classe */
    include( ‘GoogChart.class.php’ );

    /** Criaçao Grafico */
    $chart = new GoogChart();

    $i = count($gratab);
    echo $i;

    $data=array(); // Criação Table Vazia
    for($i = 0; $i < count($gratab); $i++){
    $data [ $gratab[$i][2] ]= $gratab[$i][3];
    }

    // Set graph colors
    $color = array(
    '#99C754',
    '#54C7C5',
    '#999999',
    );

    /* # Chart 1 # */
    echo 'Pie chart’;
    $chart->setChartAttrs( array(
    ‘type’ => ‘bar-horizontal’,
    ‘title’ => ‘Vendas 2011’,
    ‘data’ => $data,
    ‘size’ => array( 400, 300 ),
    ‘color’ => $color
    ));
    // Print chart
    echo $chart;

    mssql_close();
    ?>

    Desde já agradeço toda a ajuda que me puderem dar!
    Abcs
    Pedro

  10. Tiago Santos says:

    Olá a todos,

    Alguém teve um problema com as legadas e titulos do gráfico?

    eu consigo produzir o gráfico mas não estou a consegui criar uma imagem com as legendas, nem com os nomes do eixos?

    Alguém sabe porque?
    obrigado

    • Tiago Santos says:

      Olá a Todos novamente,

      Já descobri o meu problema, apenas era necessário dar o caminho da font correcto, já que tinha alterado as pastas…

      lololol… estava dificil 😛

      Obrigado a todos,

  11. Olá a todos alguém me pode ajudar? Eu estou a utilizar o PChart e no final aparece um quadrado pequenino no lado esquerdo, alguém já teve este problema ou sabe o que pode ser?

  12. vitor says:

    Christophe Costa…

    experimenta correr um exemplo:

    …htdocs\pChart\examples\

    já tive um problema semelhante e o problema estava no caminho dos includes e das fontes do texto.

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.