Affichage d'un graphique avec jpgraph

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Affichage d'un graphique avec jpgraph

Re: Affichage d'un graphique avec jpgraph

par Undead » 28 sept. 2011, 09:22

Bonjour,
pourrais tu envoyer le code CSS du style1?
Car le code est bon je l'ai testé chez moi, mais peu être que ton erreure vient de ton code CSS

Cdlt

par jobine » 30 oct. 2008, 20:46

Bonjour,

Après une pause... Je m'y replonge...

Voici le code que je test prit dans les exemples fournis par jpgraphe.

Code : Tout sélectionner

<?php include ("../jpgraph/src/jpgraph.php"); include ("../jpgraph/src/jpgraph_line.php"); include ("../jpgraph/src/jpgraph_error.php"); $datay = array(1.23,1.9,1.6,3.1,3.4,2.8,2.1,1.9); $graph = new Graph(300,200,"auto"); $graph->img->SetMargin(40,40,40,40); $graph->img->SetAntiAliasing(); $graph->SetScale("textlin"); $graph->SetShadow(); $graph->title->Set("Example of line centered plot"); $graph->title->SetFont(FF_FONT1,FS_BOLD); // Use 20% "grace" to get slightly larger scale then min/max of // data $graph->yscale->SetGrace(20); $p1 = new LinePlot($datay); $p1->mark->SetType(MARK_FILLEDCIRCLE); $p1->mark->SetFillColor("red"); $p1->mark->SetWidth(4); $p1->SetColor("blue"); $p1->SetCenter(); $graph->Add($p1); $graph->Stroke(); ?>
Ce code est appeler via une autre page comme ça:

Code : Tout sélectionner

<p> <img alt="" src="testgraph.php" class="style1" /></p>
Le résultat est un carré blanc comme si l'image n'existe pas.

Pouvez-vous m'aider...

par Ryle » 30 sept. 2008, 18:49

Euh.. non... appel ton script directement via son url http://localhost/tonsite/.../testgraph.php dans la barre d'adresse de ton navigateur, s'il y a des erreurs php, tu ne les verras que comme ça :)

Et à priori quand tu fais MONTH( 'DTHR_VENTE' ) et compagnie, si tu mets des apostrophes autour du nom de ton champ, MySQL va considérer qu'il s'agit d'une chaine et non de la valeur du champ, du coup la fonction month ne marchera pas, puisqu'il s'attend à recevoir une date ;)

par jobine » 30 sept. 2008, 18:17

Merci de ta réponse.

Mais ça ne fonctionne pas... Le x est juste centré au lieu d'être en haut.

voici le code que j'ai mis

Code : Tout sélectionner

<p><img alt="" src="testgraph.php" width="875" height="225" /></p>
Pour la requête, j'ai pas modifier le code d'origine. Mais je vais vérifier ça.

par Ryle » 30 sept. 2008, 17:22

Fais appel à ce script en passant directement l'url dans ta barre d'adresse (utilise en fait l'url spécifiée dans ta balise img). Ca te permettra de voir s'il y a des erreurs dans ton code où si l'image s'affiche correctement :)

A mon avis ta requête SQL comporte des erreurs, tu passes des chaines de caractères en paramètres de fonctions qui attendent des noms de champs, des dates ou des nombres ;)

Affichage d'un graphique avec jpgraph

par jobine » 30 sept. 2008, 17:01

Bonjour,

Je tente de comprendre l'utilisation de jpgraph. J'ai pris ce code sur un site et je l'ai adapter pour ma situation (base, fichier etc.) Après avoir réglé les erreurs, le script affiche le petit carré avec un X blanc comme si l'image n'existe pas...

Je ne comprend pas cette partie...

Les graphiques d'exemple de jpgraph fonctionne donc le serveur supporte l'application...

Désoler si le code dépasse les 20 lignes mais je ne sais pas qu'elle partie de code qui est relier à mon problème.

Merci de m'aider

<?php
include ("jpgraph/src/jpgraph.php");
include ("jpgraph/src/jpgraph_line.php");

require("fonctions.php");
require("constante.php");


// connexion � la base
 
connect_bd();

$tableauAnnees = array();
$tableauNombreVentes = array();
$moisFr = array('JAN', 'FEV', 'MAR', 'AVR', 'MAI', 'JUI', 'JUL', 'AOU', 'SEP', 'OCT', 'NOV', 'DEC');

// *********************
// Production de données
// *********************

$sql_ventes_par_mois = "
SELECT  
	MONTH( 'DTHR_VENTE' ) AS MOIS, 
	COUNT( 'ID' ) AS NOMBRE_VENTE, 
	SUM( 'PRIX' ) AS PRODUIT_VENTE
FROM ventes
WHERE YEAR( 'DTHR_VENTE' ) = '2006' 
GROUP BY MOIS
";


// Initialiser le tableau à 0 pour chaques mois ***********************
$tableauVentes2006 = array(0,0,0,0,0,0,0,0,0,0,0,0); 

$mysqlQuery = @mysql_query($sql_ventes_par_mois) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

while ($row_mois = mysql_fetch_array($mysqlQuery,  MYSQL_ASSOC)) {
	$tableauVentes2006[$row_mois['MOIS']-1] = $row_mois['PRODUIT_VENTE']; 
}

// Contrôler les valeurs du tableau
// printf('<pre>%s</pre>', print_r($tableauVentes2006,1));

// ***********************
// Création du graphique
// ***********************

// Création du conteneur
$graph = new Graph(500,300);

// Fixer les marges
$graph->img->SetMargin(40,30,50,40);    

// Mettre une image en fond
$graph->SetBackgroundImage("images/back_graph.png",BGIMG_FILLFRAME);

// Lissage sur fond blanc (évite la pixellisation)
$graph->img->SetAntiAliasing("white");

// A détailler
$graph->SetScale("textlin");

// Ajouter une ombre
$graph->SetShadow();

// Ajouter le titre du graphique
$graph->title->Set("Graphique 'courbes' : volume des ventes 2006");

// Afficher la grille de l'axe des ordonnées
$graph->ygrid->Show();
// Fixer la couleur de l'axe (bleu avec transparence : @0.7)
$graph->ygrid->SetColor('[email protected]');
// Des tirets pour les lignes
$graph->ygrid->SetLineStyle('solid');

// Afficher la grille de l'axe des abscisses
$graph->xgrid->Show();
// Fixer la couleur de l'axe (rouge avec transparence : @0.7)
$graph->xgrid->SetColor('[email protected]');
// Des tirets pour les lignes
$graph->xgrid->SetLineStyle('solid');

// Apparence de la police
$graph->title->SetFont(FF_FONT1,FS_BOLD,11);

// Créer une courbes
$courbe = new LinePlot($tableauVentes2006);

// Afficher les valeurs pour chaque point
$courbe->value->Show();

// Valeurs: Apparence de la police
$courbe->value->SetFont(FF_FONT1,FS_BOLD,9);
$courbe->value->SetFormat('%d');
$courbe->value->SetColor("red");

// Chaque point de la courbe ****
// Type de point
$courbe->mark->SetType(MARK_FILLEDCIRCLE);
// Couleur de remplissage
$courbe->mark->SetFillColor("green");
// Taille
$courbe->mark->SetWidth(5);

// Couleur de la courbe
$courbe->SetColor("blue");
$courbe->SetCenter();

// Paramétrage des axes
$graph->xaxis->title->Set("Mois");
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->SetTickLabels($moisFr);

// Ajouter la courbe au conteneur
$graph->Add($courbe);

$graph->Stroke();
?>