Visualizzazione dei risultati da 1 a 6 su 6

Discussione: grafici

  1. #1

    grafici

    Ho necessità di fare un grafico in php che mostri l'andamento dei tempi medi nel corso dell'anno. I tempi medi da confrontare sono 7 quindi ho necessità di mostrare nel grafico sette linee una per ogni tempo medio.
    Ho usato come libreria per fare i grafici PHPGraphLib ma questa mi consente di mettere al massimo 3 linee nel grafico.
    Quale libreria mi consigliate??? O meglio quale libreria può fare i grafici che servono a me???
    Va bene anche il suggerimento di librerie a pagamento!!!
    Anche l'indicazione di manuali e/o esempi non sarebbe male!
    Mi affido a voi!!!
    Grazie

    Sara

  2. #2

    Re: grafici

    Originariamente inviato da Saretta883
    Ho usato come libreria per fare i grafici PHPGraphLib ma questa mi consente di mettere al massimo 3 linee nel grafico.
    Ho dato un'occhiata veloce alla libreria PHPGraphLib e non mi sembra affatto vero ciò che affermi. Con il metodo addData() puoi aggiungere quanti dati vuoi ( addData(array1, array2, array3, ..., arrayN) )
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Anch'io pensavo così ma ho provato a farlo e...non funziona, o meglio....mi restituisce un grafico ma con soltanto 3 linee....
    Ti posto il codice e della pagina e ti allego il grafico
    Codice PHP:
    <?php 
        
    include("PHPGraphLib/phpgraphlib.php");
        
        
    $graph=new PHPGraphLib(550,350); 
                        
        
    $x = array('gennaio''febbraio''marzo''aprile''maggio''giugno''luglio''agosto''settembre'); 
        
    $t1 = array('0.000''0.000''0.000''0.000''0.000''3.235''0.000''0.000''0.000'); 
        
    $t2 = array('0.000''0.000''0.000''0.000''0.000''6.647''0.000''0.000''0.000'); 
        
    $t3 = array('0.000''0.000''0.000''0.000''0.000''4.882''0.000''0.000''0.000'); 
        
    $t4 = array('0.000''0.000''0.000''0.000''0.000''12.706''0.000''0.000''0.000'); 
        
    $t5 = array('0.000''0.000''0.000''0.000''0.000''24.882''0.000''0.000''0.000'); 
        
    $t6 = array('0.000''0.000''0.000''0.000''0.000''21.647''0.000''0.000''0.000'); 
        
    $t7 = array('0.000''0.000''0.000''0.000''0.000''8.118''0.000''0.000''0.000'); 
        for (
    $i=0;$i<9;$i++){    
            
    $stato=$x[$i];
            
    $somme=$t1[$i];
            
    $somme2=$t2[$i];
            
    $somme3=$t3[$i];
            
    $somme4=$t4[$i];
            
    $somme5=$t5[$i];
            
    $somme6=$t6[$i];
            
    $somme7=$t7[$i];
            
    //$somme=$grf[$esamerichiesto]['MESE'];
            //add to data areray
            
    $dataArray1[$stato]=$somme;
            
    $dataArray2[$stato]=$somme2;
            
    $dataArray3[$stato]=$somme3;
            
    $dataArray4[$stato]=$somme4;
            
    $dataArray5[$stato]=$somme5;
            
    $dataArray6[$stato]=$somme6;
            
    $dataArray7[$stato]=$somme7;
        }
        
        
    //configure graph
        
    $graph->addData($dataArray1,$dataArray2,$dataArray3,$dataArray4,$dataArray5,$dataArray6,$dataArray7);
        
    //$graph->setTitle("Grafico a barre");
        //$graph->setGradient("blue", "blue");
        
    $graph->setXValuesVertical(false);
        
    //Indichiamo alla libreria di non mostrare le barre
        
    $graph->setBars(false);
        
    //Di conseguenza segnaliamo che si tratta di un grafico a linee
        
    $graph->setLine(true); 
        
    $graph->setLineColor("red""blue""green""yellow""fucsia""gray""aqua");
        
        
    //Visualizza un bollino nel punto del valore indicato
        
    $graph->setDataPoints(true);

        
    //Indichiamo il colore del bollino
        
    $graph->setDataPointColor("green");

        
    //Visualizza il valore del punto
        
    $graph->setDataValues(true);

        
    //Indichiamo il colore
        
    $graph->setDataValueColor("blue");
        
        
    $graph->setLegend(true);
        
    //Legenda
        
    $graph->setLegendTitle('T1' 'T2''T3''T4''T5''T6''T7');

        
    //$graph->setXValuesVertical(false);
        
    $graph->createGraph();
    ?>
    Immagini allegate Immagini allegate

  4. #4
    Io provando il tuo codice ne vedo 5 di grafici.
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  5. #5
    Da cosa può dipendere???

  6. #6
    Ho provato ad allargare le dimensioni del grafico ma niente! Allora volevo cercare di intervenire sul range di valori che PHPGraphLib attribuisce automaticamente all'asse delle ordinate e delle ascisse ma non so come fare.
    Sapete qual'è il comando?
    Nel frattempo ho scaricato un'altra libreria gratuita "Libchart", ho provato a fare il grafico e diciamo che in questo caso lo ottengo in maniera corretta. Posto il codice:
    Codice PHP:
    <?php
        
    include "libchart/classes/libchart.php";

        
    $chart = new LineChart();

        
    $serie1 = new XYDataSet();
        
    $serie1->addPoint(new Point("Gen"0.000));
        
    $serie1->addPoint(new Point("Feb"0.000));
        
    $serie1->addPoint(new Point("Mar"0.000));
        
    $serie1->addPoint(new Point("Apr"0.000));
        
    $serie1->addPoint(new Point("Mag"0.000));
        
    $serie1->addPoint(new Point("Giu"3.235));
        
    $serie1->addPoint(new Point("Lug"0.000));
        
    $serie1->addPoint(new Point("Ago"0.000));
        
    $serie1->addPoint(new Point("Sett"0.000));
        
        
    $serie2 = new XYDataSet();
        
    $serie2->addPoint(new Point("Gen"0.000));
        
    $serie2->addPoint(new Point("Feb"0.000));
        
    $serie2->addPoint(new Point("Mar"0.000));
        
    $serie2->addPoint(new Point("Apr"0.000));
        
    $serie2->addPoint(new Point("Mag"0.000));
        
    $serie2->addPoint(new Point("Giu"6.647));
        
    $serie2->addPoint(new Point("Lug"0.000));
        
    $serie2->addPoint(new Point("Ago"0.000));
        
    $serie2->addPoint(new Point("Sett"0.000));
        
        
    $serie3 = new XYDataSet();
        
    $serie3->addPoint(new Point("Gen"0.000));
        
    $serie3->addPoint(new Point("Feb"0.000));
        
    $serie3->addPoint(new Point("Mar"0.000));
        
    $serie3->addPoint(new Point("Apr"0.000));
        
    $serie3->addPoint(new Point("Mag"0.000));
        
    $serie3->addPoint(new Point("Giu"4.882));
        
    $serie3->addPoint(new Point("Lug"0.000));
        
    $serie3->addPoint(new Point("Ago"0.000));
        
    $serie3->addPoint(new Point("Sett"0.000));
        
        
    $serie4 = new XYDataSet();
        
    $serie4->addPoint(new Point("Gen"0.000));
        
    $serie4->addPoint(new Point("Feb"0.000));
        
    $serie4->addPoint(new Point("Mar"0.000));
        
    $serie4->addPoint(new Point("Apr"0.000));
        
    $serie4->addPoint(new Point("Mag"0.000));
        
    $serie4->addPoint(new Point("Giu"12.706));
        
    $serie4->addPoint(new Point("Lug"0.000));
        
    $serie4->addPoint(new Point("Ago"0.000));
        
    $serie4->addPoint(new Point("Sett"0.000));
        
        
    $serie5 = new XYDataSet();
        
    $serie5->addPoint(new Point("Gen"0.000));
        
    $serie5->addPoint(new Point("Feb"0.000));
        
    $serie5->addPoint(new Point("Mar"0.000));
        
    $serie5->addPoint(new Point("Apr"0.000));
        
    $serie5->addPoint(new Point("Mag"0.000));
        
    $serie5->addPoint(new Point("Giu"24.882));
        
    $serie5->addPoint(new Point("Lug"0.000));
        
    $serie5->addPoint(new Point("Ago"0.000));
        
    $serie5->addPoint(new Point("Sett"0.000));
        
        
    $serie6 = new XYDataSet();
        
    $serie6->addPoint(new Point("Gen"0.000));
        
    $serie6->addPoint(new Point("Feb"0.000));
        
    $serie6->addPoint(new Point("Mar"0.000));
        
    $serie6->addPoint(new Point("Apr"0.000));
        
    $serie6->addPoint(new Point("Mag"0.000));
        
    $serie6->addPoint(new Point("Giu"21.647));
        
    $serie6->addPoint(new Point("Lug"0.000));
        
    $serie6->addPoint(new Point("Ago"0.000));
        
    $serie6->addPoint(new Point("Sett"0.000));
        
        
    $serie7 = new XYDataSet();
        
    $serie7->addPoint(new Point("Gen"0.000));
        
    $serie7->addPoint(new Point("Feb"0.000));
        
    $serie7->addPoint(new Point("Mar"0.000));
        
    $serie7->addPoint(new Point("Apr"0.000));
        
    $serie7->addPoint(new Point("Mag"0.000));
        
    $serie7->addPoint(new Point("Giu"8.118));
        
    $serie7->addPoint(new Point("Lug"0.000));
        
    $serie7->addPoint(new Point("Ago"0.000));
        
    $serie7->addPoint(new Point("Sett"0.000));
        
        
    $dataSet = new XYSeriesDataSet();
        
    $dataSet->addSerie("T1"$serie1);
        
    $dataSet->addSerie("T2"$serie2);
        
    $dataSet->addSerie("T3"$serie3);
        
    $dataSet->addSerie("T4"$serie4);
        
    $dataSet->addSerie("T5"$serie5);
        
    $dataSet->addSerie("T6"$serie6);
        
    $dataSet->addSerie("T7"$serie7);
        
    $chart->setDataSet($dataSet);

        
    $chart->setTitle("Andamento tempi medi");
        
    $chart->getPlot()->setGraphCaptionRatio(0.62);
        
    $chart->render("demo6.png");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>Libchart line demonstration</title>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />
    </head>
    <body>
        [img]demo6.png[/img]
    </body>
    </html>
    Allego anche il risultato che ottengo.
    Risolvendo in questo modo i problemi che ho sono i seguenti:
    - Devo aggiungere i punti del grafico uno alla volta per ogni serie (mettendo dei cicli forse posso risolvere, no?)
    - (PROBLEMA MAGGIORE) questo codice mi crea un'immagine e che va a finire nella mia cartella di lavoro e io non voglio occupare spazio così inutilmente, come posso fare?

    Idea di altre librerie a pagamento e non?
    Vi prego help me!!!!
    Immagini allegate Immagini allegate

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.