Su Ubuntu la libreria si installa comodamente da riga di comando:
$ sudo apt-get install libphp-jpgraph
tutti i file della libreria vengono così installati nella directory /usr/share/jpgraph/
PLOTTER.PHP
<?php
/*************************************************************************************************
*
* Motivazione: costruisce un grafico con temperature rilevate nelle ultime 24hh
*
* Autore : Francesco Parisi (fparisi at tiscali dot it) , (fparisi at gmail dot com)
*
* Richiede : db.php, jpgraph.php, jpgraph_line.php
*
*************************************************************************************************/
require_once ('/usr/share/jpgraph/jpgraph.php');
require_once ('/usr/share/jpgraph/jpgraph_line.php');
require_once ('db.php');
// Apre la connessione al server
$conn = mysql_connect( $host, $user, $pass )
or die('Impossibile connettersi al server: ' . mysql_error());
// Seleziona il database
$sel = mysql_select_db( $dbname, $conn )
or die('Impossibile selezionare il database: ' . mysql_error());
// Temperature ultime 24hh
$sql_last_24hh = 'SELECT * FROM `log` WHERE `time` >= NOW() - INTERVAL 1 DAY';
$res = mysql_query( $sql_last_24hh )
or die('Impossibile eseguire query: ' . mysql_error());
// Formatta il timestamp e costruisce gli assi per il grafico
if ( $row = mysql_fetch_assoc($res) or die(mysql_error()) )
{
do
{
// Converte il timestamp MySQL in timestamp PHP
$timestamp = strtotime($row['time']);
// Costruisce il vettore degli orari (asse x)
$x[] = sprintf("%s, %s", date ('j/n', $timestamp), date ('H:i', $timestamp) );
// Costruisce il vettore delle temperature (asse y)
$y[] = $row['temp_int'];
} while ( $row=mysql_fetch_assoc($res) );
}
// Crea il grafico
$graph = new Graph(1024, 800,"auto");
$graph->SetScale( "textlin");
$graph->img-> SetMargin(60,40,40,110);
$graph->title->Set( 'Temperature rilevate nelle ultime 24hh');
$graph->title->SetFont( FF_FONT2, FS_BOLD );
$graph->xaxis->SetTickLabels( $x );
$graph->xgrid->Show(true);
$graph->xaxis->SetLabelAngle(90);
$graph->SetShadow();
// Crea il plot
$lineplot = new LinePlot( $y );
$lineplot->value->Show();
$lineplot->SetColor("blue");
$lineplot->SetWeight(2); // Two pixel wide
$lineplot->value->SetColor("darkred");
$lineplot->value->SetFormat( "%0.1f");
//$lineplot->mark ->SetType(MARK_FILLEDCIRCLE);
// Aggiunge il plot al grafico
$graph->Add( $lineplot );
// Mostra il grafico
$graph->Stroke();
// Chiude connessione
mysql_close( $conn )
or die('Impossibile chiudere connessione: ' . mysql_error());
?>
Ecco un esempio di grafico generato (click sopra per ingrandire), che verrà poi richiamato nella pagina web:
Nessun commento:
Posta un commento