JPGraph - Axe des Y inversé ! [Résolu]

cs_prim 12 Messages postés mardi 17 juin 2003Date d'inscription 23 mars 2009 Dernière intervention - 2 sept. 2005 à 16:40 - Dernière réponse : cs_prim 12 Messages postés mardi 17 juin 2003Date d'inscription 23 mars 2009 Dernière intervention
- 3 sept. 2005 à 00:23
Bonjour à tous !
J'ai un léger problème qui me hante quotidiennement lol

Tout d'abord avant de vous expliquer je vais vous montrer mon graphe : http://legroupedcachan.free.fr/pes/evolution.php

Il s'agit en faite d'un graphe qui représente l'évolution du classement d'un joueur dans une ligue mis à jour mensuellement.
Donc logiquement, le 0 de l'axe des Y se retrouve en haut puisque le mieux classé est le numéro 1 de la ligue et donc forcément tout en haut ...

Mon problème est le suivant : vous remarquerez que sur le graphe lorsque j'affiche les valeurs, elles sont négatives !!!... et bien évidemment un classement étant positif, je souhaiterais indiquer ces valeurs en positif ... j'ai vraiment tout essayé mais rien n'y fait ! Voivi mon code :

<?php
include ("../outils/jpgraph/source/jpgraph.php");
include ("../outils/jpgraph/source/jpgraph_line.php");
include ("../outils/jpgraph/source/jpgraph_error.php");



// Callback to negate the argument
function _cb_negate($aVal) {
return round(-$aVal);
}



$ydata = array(1,15,7,1,3,5);
$xdata = array("06/2005","07/05","08/2005","09/2005","10/2005","11/2005");



// Negate all data
$n = count($ydata);
for($i=0; $i<$n; ++$i) {
$ydata[$i] = round(-$ydata[$i]);
}



// Basic graph setup
$graph = new Graph(400,300,"auto");
$graph->SetScale("linlin");
$graph->img->SetMargin(50,50,60,40);
$graph->SetMarginColor('white');
$graph->SetColor('white');


$graph->title->Set("Evolution");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->title->SetColor("white");


$graph->subtitle->Set("(Negated Y-axis)");
$graph->subtitle->SetFont(FF_FONT1,FS_NORMAL);
$graph->subtitle->SetColor("white");


// Setup axis
$graph->yaxis->SetLabelFormatCallback("_cb_negate");
$graph->xaxis->SetTickLabels($xdata);


$p1 = new LinePlot($ydata);
$p1->SetColor("yellow");
$p1->SetWeight(2);
$p1->mark->SetType(MARK_FILLEDCIRCLE);
$p1->mark->SetFillColor("red");
$p1->mark->SetWidth(4);
$p1->SetColor("blue");
$p1->SetCenter();
$p1->value->show();



$graph->Add($p1);
$graph->Stroke();
?>

Merci si quelqu'un pouvait m'aider
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 2 sept. 2005 à 22:14
3
Merci
Salut,



En un mot : SUUUUUUPEEEEEER !!!



PhP viend de prendre une nouvelle tournure pour moi. Cette librairie
graphique casse la barraque. En fait, c'est même la première librairie
"professionelle" que je croise (!= "home_made_library" ;). Et ça fait
plaisir!



Bon bref du coup j'ai téléchargé et me suis lancé tout azimute dans les sources, docs, ...etc ... et ton code:



En fait tu inverse les valeurs des Y par une fonction callback. Et ben
en toute logique, rien n'empeche de les réinverser pour l'affichage.



Au niveau de ta précédante fonction :

// Callback to eliminate the minus of a negate argument

function _cb_no_minus($aVal) {

return str_replace("-","",$aVal);

}



Puis tu insert l'appel à cette fonction :

$p1->SetCenter();

$p1->value->SetFormatCallback("_cb_no_minus"); // <= cette ligne !!!

$p1->value->show();



Par contre, j'ai encore beaucoup de chose à apprendre sur cette librairie... :(

Merci de me faire découvrir,

A+

Merci J_G 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 89 internautes ce mois-ci

Commenter la réponse de J_G
cs_prim 12 Messages postés mardi 17 juin 2003Date d'inscription 23 mars 2009 Dernière intervention - 3 sept. 2005 à 00:23
0
Merci
Là tu m'as fait un super kifff mec !!!!!!!!!!!!!!!
Tu me sauves d'un big prob dont je réfléchissais depuis longtemps rien qu'en une seule ligne et apparemment sans trop de difficulté pour toi !
Merci à toi et heureux de t'avoir fait découvrir JPGraph : pour moi c'est la meilleur librairie graphique de PHP !

Merci encore de ta réponse !!
Commenter la réponse de cs_prim

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.