IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Artichow] Changer l'ordonnée d'un axe


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut [Artichow] Changer l'ordonnée d'un axe
    Avec Artichow, j'ai créé le graphique suivant :


    A droite, j'ai l'échelle des quantités (en bâton) De 0 à X, X étant défini automatiquement.
    En bas, j'ai la graduation du temps.

    Mais à gauche, j'ai les prix (en courbes), hors les prix sont obligatoirement compris dans une fourchette invariable. On va dire entre 5 et 14 (pour l'exemple). Plutôt que d'afficher une graduation de 0 à 15 comme là, je préfère afficher uniquement de 5 à 14 pour augmenter la précision des courbes.

    (et le problème est encore plus grave quand la fourchette est situé entre 500 et 530 par exemple).


    Si pas de solution, comme je pense rester sur Artichow, je suis prêt à modifier le code source. Donc à défaut, si vous savez où se situe le fichier à modifier...

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    Et donc ma question (on en vient toujours à oublier l'essentiel), c'est :

    Comment modifier l'échelle à gauche sans modifier celle de droite ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    J'ai trouvé une réponse à mon problème.

    Il existe dans le fichier Axis.class.php, une fonction public non documentée : setRange($min, $max). Cette fonction fait exactement ce que je veux sauf que dans le process de génération du graphique, le min/max est réinitilisé à nouveau.

    Du coup, j'ai désactivé cette réinitialisation dès qu'un setRange() a déjà été effectué (directement dans le code) :
    Dans le fichier Plot.class.php, à la ligne 1150, j'ai ajouté ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    				// PATCH M.O : Permet de définir le min/max d'un axe Y.
    				list($min_set, $max_set) = $this->axis->{$axis}->getRange();
    				if(!is_null($min_set)) $min = $min_set;
    				if(!is_null($max_set)) $max = $max_set;
    				// PATCH FIN

    Et ça marchait, mais mal. L'axe des ordonnés était défini trop haut (il aurait fallut que je re-paramètre les calcules d'échelle). J'ai simplement inversé le Y de gauche avec celui de droite et cette fois ça marche exactement comme je veux.


    Un peu de bricolage... en attendant une solution "propre" car en farfouillant le code, je crois qu'il existe une méthode sans modifier le code source, mais je n'arrive pas à l'utiliser correctement.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2003
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 34
    Points : 25
    Points
    25
    Par défaut
    J'ai eu une réponse sur le forum officielle.
    Bien plus propre.

    nano a écrit:
    -------------------------------------------------------
    Je pense que pour ton problème, il faudrait utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $plot->setYAxis(PLOT_RIGHT);
    $plot->setYMax(A);
    $plot->setYMin(B);
     
    $group->add($plot);
     
     
    $plot->setYAxis(PLOT_LEFT);
    $plot->setYMax(C);
    $plot->setYMin(D);
     
    $group->add($plot);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changer l'échelle de l'axe horizontal
    Par jiraya sama dans le forum Qwt
    Réponses: 13
    Dernier message: 19/06/2009, 11h18
  2. [Artichow] Incliner le label de l'axe X
    Par the.ghz dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/05/2008, 18h00
  3. [Artichow] Modifier l'échelle de l'axe des abscisses
    Par DonKnacki dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 30/04/2008, 09h37
  4. aide 2 axes ordonnées pour 2 axes abscisses
    Par bob-47 dans le forum Excel
    Réponses: 3
    Dernier message: 10/07/2007, 02h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo