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 :

[JpGraph] Image non identique.


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut [JpGraph] Image non identique.
    Bonjour,
    J'ai trouvé un exemple de codes que voici:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    include ("../jpgraph/jpgraph.php");
    include ("../jpgraph/jpgraph_bar.php");
    define('MYSQL_HOST', 'localhost');
    define('MYSQL_USER', 'root');
    define('MYSQL_PASS', '');
    define('MYSQL_DATABASE', 'tuto_jp_graph');
    $tableauAnnees = array();
    $tableauNombreVentes = array();
    // **********************************************
    // Extraction des données dans la base de données
    // *************************************************
    $sql = <<<EOF
    SELECT
    YEAR(`DTHR_VENTE`) AS ANNEE,
    COUNT(ID) AS NBR_VENTES
    FROM `ventes`
    GROUP BY YEAR(`DTHR_VENTE`)
    EOF;
    $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
    @mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
    $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
    while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
    $tableauAnnees[] = 'Année ' . $row['ANNEE'];
    $tableauNombreVentes[] = $row['NBR_VENTES'];
    }
    // *******************
    // Création du graphique
    // *******************
    // Construction du conteneur
    // Spécification largeur et hauteur
    $graph = new Graph(400,250);
    // Réprésentation linéaire
    $graph->SetScale("textlin");
    // Ajouter une ombre au conteneur
    $graph->SetShadow();
    // Fixer les marges
    $graph->img->SetMargin(40,30,25,40);
    // Création du graphique histogramme
    $bplot = new BarPlot($tableauNombreVentes);
    // Spécification des couleurs des barres
    $bplot->SetFillColor(array('red', 'green', 'blue'));
    // Une ombre pour chaque barre
    $bplot->SetShadow();
    // Afficher les valeurs pour chaque barre
    $bplot->value->Show();
    // Fixer l'aspect de la police
    $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    // Modifier le rendu de chaque valeur
    $bplot->value->SetFormat('%d ventes');
    // Ajouter les barres au conteneur
    $graph->Add($bplot);
    // Le titre
    $graph->title->Set("Graphique 'HISTOGRAMME' : ventes par années");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
    // Titre pour l'axe horizontal(axe x) et vertical (axe y)
    $graph->xaxis->title->Set("Années");
    $graph->yaxis->title->Set("Nombre de ventes");
    $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
    // Légende pour l'axe horizontal
    $graph->xaxis->SetTickLabels($tableauAnnees);
    // Afficher le graphique
    $graph->Stroke();
    ?>
    Pour obtenir cette image:
    Nom : 2015-10-19_18h40_59.png
Affichages : 152
Taille : 46,3 Ko

    Ceux ci étant obsolètes je les ai donc modifiés pour créer celui ci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <?php
    include ("../src/jpgraph.php");
    include ("../src/jpgraph_bar.php");
    try
    {
    $connection = new PDO('mysql:host=localhost;dbname=tuto_jp_graph', 'root', '');
    }catch (Exception $e)
    {
    die('Erreur : ' . $e->getMessage());
    }
    $tableauAnnees = array();
    $tableauNombreVentes = array();
    // **********************************************
    // Extraction des données dans la base de données
    // *************************************************
     
    $requete = $connection->prepare("SELECT YEAR(`DTHR_VENTE`) AS ANNEE,
    COUNT(ID) AS NBR_VENTES FROM `ventes`
    GROUP BY YEAR(`DTHR_VENTE`)");
     $requete->execute();
     //while ($row = $requete->fetch) {
     while ($row = $requete->fetch(PDO::FETCH_ASSOC)) {
    	$tableauAnnees[] = 'Année ' . $row['ANNEE'];
    	$tableauNombreVentes[] = $row['NBR_VENTES']; 
       //$data[] = $row['points'];
       //$legend[] = $row['username'];
    }
    // *******************
    // Création du graphique
    // *******************
    // Construction du conteneur
    // Spécification largeur et hauteur
    $graph = new Graph(400,250);
    // Réprésentation linéaire
    $graph->SetScale("textlin");
    // Ajouter une ombre au conteneur
    $graph->SetShadow();
    // Fixer les marges
    $graph->img->SetMargin(40,30,25,40);
    // Création du graphique histogramme
    $bplot = new BarPlot($tableauNombreVentes);
    // Spécification des couleurs des barres
    $bplot->SetFillColor(array('red', 'green', 'blue'));
    // Une ombre pour chaque barre
    $bplot->SetShadow();
    // Afficher les valeurs pour chaque barre
    $bplot->value->Show();
    // Fixer l'aspect de la police
    $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    // Modifier le rendu de chaque valeur
    $bplot->value->SetFormat('%d ventes');
    // Ajouter les barres au conteneur
    $graph->Add($bplot);
    // Le titre
    $graph->title->Set("Graphique 'HISTOGRAMME' : ventes par annees");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
    // Titre pour l'axe horizontal(axe x) et vertical (axe y)
    $graph->xaxis->title->Set("Annees");
    $graph->yaxis->title->Set("Nombre de ventes");
    $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
    // Légende pour l'axe horizontal
    $graph->xaxis->SetTickLabels($tableauAnnees);
    // Afficher le graphique
    $graph->Stroke();
    ?>
    Mais ce code ne reproduit pas l'image exacte d'origine puisque voici celle fournie par celui ci:

    Nom : 2015-10-19_18h16_14.png
Affichages : 155
Taille : 5,9 Ko

    Vous constaterez des différences importantes surtout sur les couleurs ainsi que les ombres et les notations absentes sur les barres.
    Je pense que les lignes 47, 49 et 51 ne sont pas opérationnelles avec "Value".
    Ainsi pourriez vous m'indiquer ce que je dois modifier à mes codes pour obtenir une image identique à celle d'origine?

    Merci.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Le code que tu nous montres fonctionne avec la version 3.0.7 encore disponible sur le site.
    Je ne peux pas te dire ce qu'ils ont fait avec la version 3.5 ; Jpgraph n'est plus maintenu depuis 2009 donc ...
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Pourrais tu m'indiquer où est ce que je pourrai télécharger la version 3.07?
    Merci.

  4. #4
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Bonjour.

    Ca y est j'ai trouvé la version 3.0.7 et installé celle ci!
    Le graphique est désormais conforme à l'original.
    Merci.

    Problème résolu.

  5. #5
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    bonjour.
    C'est un bug connu de la version 3.5. j'y ai déja répondu plusieurs fois sur ce forum.
    2 solutions :
    1. supprimer les thèmes
      Code php : Sélectionner tout - Visualiser dans une fenêtre à part
      $graph->ClearTheme();
    2. remonter le add (ligne 53) juste après le new (ligne 41)
      Voir http://www.developpez.net/forums/d12...e-histogramme/


    Cordialement.

    Yves.

  6. #6
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Ok merci pour le "plus" afin d'utiliser la version 3.5 !
    J'ai préféré procéder en écrivant le code suivant:
    Cela fonctionne effectivement avec cette dernière version me semble t-il?

    Mais deux interrogations subsistent:
    1) lorsque je laisse active la ligne 51 comme ci dessous:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    <?php
    include ("../src/jpgraph.php");
    include ("../src/jpgraph_bar.php");
    define('MYSQL_HOST', 'localhost');
    define('MYSQL_USER', 'root');
    define('MYSQL_PASS', '');
    define('MYSQL_DATABASE', 'tuto_jp_graph');
    $tableauAnnees = array();
    $tableauNombreVentes = array();
    // **********************************************
    // Extraction des données dans la base de données
    // *************************************************
    $sql = <<<EOF
    SELECT
    YEAR(`DTHR_VENTE`) AS ANNEE,
    COUNT(ID) AS NBR_VENTES
    FROM `ventes`
    GROUP BY YEAR(`DTHR_VENTE`)
    EOF;
    $mysqlCnx = @mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS) or die('Pb de connxion mysql');
    @mysql_select_db(MYSQL_DATABASE) or die('Pb de sélection de la base');
    $mysqlQuery = @mysql_query($sql, $mysqlCnx) or die('Pb de requête');
    while ($row = mysql_fetch_array($mysqlQuery, MYSQL_ASSOC)) {
    $tableauAnnees[] = 'Année ' . $row['ANNEE'];
    $tableauNombreVentes[] = $row['NBR_VENTES'];
    }
    // *******************
    // Création du graphique
    // *******************
    // Construction du conteneur
    // Spécification largeur et hauteur
    $graph = new Graph(400,250);
    $graph->ClearTheme();
    // Réprésentation linéaire
    $graph->SetScale("textlin");
    // Ajouter une ombre au conteneur
    $graph->SetShadow();
    // Fixer les marges
    $graph->img->SetMargin(40,30,25,40);
    // Création du graphique histogramme
    $bplot = new BarPlot($tableauNombreVentes);
    // Spécification des couleurs des barres
    $bplot->SetFillColor(array('red', 'green', 'blue'));
    // Ajouter les barres au conteneur
    $graph->Add($bplot);
    // Une ombre pour chaque barre
    $bplot->SetShadow();
    // Afficher les valeurs pour chaque barre
    $bplot->value->Show();
    // Fixer l'aspect de la police
    $bplot->value->SetFont(FF_ARIAL,FS_NORMAL,9);
    // Modifier le rendu de chaque valeur
    $bplot->value->SetFormat('%d ventes');
    // Ajouter les barres au conteneur
    $graph->Add($bplot);
    // Le titre
    $graph->title->Set("Graphique 'HISTOGRAMME' : ventes par années");
    $graph->title->SetFont(FF_FONT1,FS_BOLD);
    // Titre pour l'axe horizontal(axe x) et vertical (axe y)
    $graph->xaxis->title->Set("Années");
    $graph->yaxis->title->Set("Nombre de ventes");
    $graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);
    $graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);
    // Légende pour l'axe horizontal
    $graph->xaxis->SetTickLabels($tableauAnnees);
    // Afficher le graphique
    $graph->Stroke();
    ?>
    Voici le message d'erreur qui apparait:
    Nom : 2015-10-21_18h57_32.png
Affichages : 125
Taille : 3,2 Ko
    Quel en serait la raison?


    2) La police de caractères ne fonctionne pas pour présenter les "é" comme indiqué ci dessous:
    Nom : 2015-10-21_18h54_22.png
Affichages : 134
Taille : 12,2 Ko
    Me manque t-il une police sur mon ordinateur?

    Merci d'avance.

  7. #7
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Pour la question 1) c'est résolu.
    Car je devais copier dans le dossier Fonts le fichier arial.ttf

    Il me reste la question 2) à résoudre au sujet des caractères avec accents.

    Merci déjà pour votre aide.

    Bien cordialement.

  8. #8
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bonjour.
    Tu mets "accents" dans la barre de recherche du forum et tu trouveras quatre fils de discussion qui te donnent des solutions à ton problème, en général, liéau non emploi de l'utf-8.
    Cordialement.

    Yves.

  9. #9
    Membre actif
    Homme Profil pro
    Electronicien
    Inscrit en
    Novembre 2013
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Electronicien
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 99
    Par défaut
    Ok merci Yves.
    Je vais faire comme tu me le conseil pour les caractères déformés.

    Sinon j'ai remarqué qu'il n'y a pas beaucoup de sujets qui traitent du bug ne permettant pas de présenter toutes le couleurs.
    En fait je n'en ai vu que deux en tout et pour tout.

    Au fait toi qui semble bien connaître les problèmes rencontrés avec JpGraphe, peux tu m'expliquer la différence entre les versions 3.0.7 et 3.5 par exemple?
    Je suppose que la version 3.5 doit être mieux car sans doute plus récente et donc améliorée!
    Mais encore?

    Merci.

  10. #10
    Membre émérite Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 601
    Par défaut
    Bonjour.
    Si tu emploies une des deux méthodes exposées par mon poste du 21 à 13h07, tu n'auras plus de restrictions pour les couleurs.
    Pour la différence de version, vas plutôt sur le site de jpgraph. C'est détaillé . ..
    Yves

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

Discussions similaires

  1. Comparer deux images (100% identiques ou non)
    Par FluidBlow dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/04/2008, 14h40
  2. [JpGraph] image non mise à jour
    Par Lyna31 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/03/2007, 17h07
  3. imagejpeg : images non valides
    Par kivan666 dans le forum Langage
    Réponses: 4
    Dernier message: 01/08/2006, 13h00
  4. [JPGraph]Erreur, image non supportée
    Par Jim_Nastiq dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 18/07/2006, 16h28
  5. [FORMS] Champ image non basé
    Par macharius dans le forum Forms
    Réponses: 5
    Dernier message: 08/03/2005, 18h04

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