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

Graphisme Java Discussion :

Bibliothèque graphique !?


Sujet :

Graphisme Java

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut Bibliothèque graphique !?
    Bonjour,

    Je dois réaliser un module de statistiques à partir de données stockées dans un fichier texte, et donc afficher des graphiques. J'utilise actuellement la bibliothèque JFreeChart de la façon suivante :

    Creation d'une image dans une servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ....
    for (int j = 0; j <= Integer.parseInt(stat.getProperty("DERN_JOUR")); j++){
    ...
    dataset.addValue(value, ...);
    }
     
    //creation de l'image
    JFreeChart barChart = ChartFactory.createLineChart(titre, "", ordonnee, dataset, PlotOrientation.VERTICAL, true, true, false);
            OutputStream out = response.getOutputStream(); 
            response.setContentType("image/png");
            ChartUtilities.writeChartAsPNG(out, barChart, 800, 500);
    Affichage de l'image dans une jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src="..../GraphServlet?.....>
    Tout marche correctement mais le pb c'est que le client souhaite un affichage + intéractif, à savoir qu'il souhaite par exemple avoir des infos lorsque l'on passe la souris sur un point de la courbe ... cela n'est pas possible avec le passage par une image comme je le fais actuellement et je ne sais meme pas si c'st possible avec JFreeChart !?

    Sinon quelle bibliothèque me conseillé vous ?? Si quelqu'un avait un exemple, ça serait cool car je ne sais pas trop comment faire et c'est assez urgent ?:

    Merci d'avance

  2. #2
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    tu peux faire ça avec JFreeChart, voire cewolf (perso je l'ai déjà fait avec cewolf)

    il y a un truc qui doit s'appeler ToolTip ou quelquechose comme ça à régler sur ton graphe qui te permet de faire exactement ce que tu veux

    je te conseille d'aller voir sur le site de cewolf et télécharger l'exemple

    ps : cewolf utilise lui-même JFreeChart

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut
    Ok je vais voir ça avec cewolf si c'est + simple parce qu'il me semble qu'il a des classes ToolTip sous JFreeChart. Le problème reste l'affichage, je ne sais pas comment afficher un graphique autrement qu'en passant par une image ... et je suppose qu'en passant par une image, on perd toute "l'intéractivité" ?!

  4. #4
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    très certainement

  5. #5
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut
    J'ai essayé de persister avec JFreeChart. Quelqu'un sait-il si il existe un moyen d'afficher un graphique sans passer par une image de façon à ne pas perdre l'interactivité ??

    Merci

  6. #6
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans ton cas (une appli web) c'est soit du javascript, soit tu passes par une applet

  7. #7
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    utilise cewolf, je te donne un exemple rapide et pas complet (concernant le tooltip) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <%
    XYToolTipGenerator ttg = new XYToolTipGenerator()
    {
        public String generateToolTip(XYDataset data, int series, int item)
        {
            Date d = new Date(((Long)data.getX(series,item)).longValue());
            return ""+(String)data.getSeriesKey(series)+" "+(new SimpleDateFormat("dd/MM/yyyy")).format(d) + " "+(new DecimalFormat("#####,###€")).format(data.getY(series,item).longValue());
        }
    };
    pageContext.setAttribute("ttg", ttg);
    %>
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <cewolf:img chartid="portefeuilleChart" renderer="/cewolf" width="500" height="300">
        <cewolf:map tooltipgeneratorid="ttg" />
    </cewolf:img>

  8. #8
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    ps : il me semble que c'est le format svg qui permet de faire ce genre de trucs avec JFreechart

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut
    Merci bcp, j'ai reussit avec Cewolf !!!

    Il me reste encore un pb "d'actualisation" : en effet, le graphique est généré en fonction des données d'un formulaire ... lorsque je modifie le formulaire, le dataset est mis à jour mais pas le graphique

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut
    Bon en fait je dois pouvoir en gros afficher pour un jour donné, plusieurs type de stats. J'ai donc une liste déroulante de jours et des boutons radios pour les type de stats.

    Mon pb est que lorsque je choisis un type de stats pour un jour, cela fonctionne mais lorsque je veut choisir un autre type de stats, le 1er graphique est affiché .... par contre si je change de date c'est bon.

    En fait j'ai l'impression que les graphiques sont gardés en mémoire et associé à une date !!

    Si quelqu'un savait d'ou ça peut venir ? Est-il possible de "vider la memoire" à l'aide d'une methode de pageContext peut-etre ?

  11. #11
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    ya un usecache=false à mette quelque part quand tu fais ton graphique avec cewolf

    j'avais eu le même problème

  12. #12
    Membre émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Par défaut
    ps : c'est dans la balise cewolf:producer

  13. #13
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 10
    Par défaut
    Merci bcp remika !!! En fait j'avais résolu mon pb en passant les paramètre dans le <cewolf:params .... alors qu'avant je les passais dans le constructeur de GraphProducer qui hérite de DatasetProducer!!

    Bref, g rajouté le usecache=false qd meme au cas ou !!

    Par contre, j'aurais encore une autre question car je trouve peu de docs sur Cewolf : est-ce que quelqu'un saurait comment modifier l'axe des ordonnées pour qu'il ne demarre pas de 0 mais de 100.000 par ex ?

    Merci d'avance

Discussions similaires

  1. Quelle bibliothèque graphique me conseillez-vous ?
    Par traiangueul dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 26/01/2011, 12h37
  2. bibliothèque graphique C
    Par stokastik dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 02/11/2006, 11h26
  3. [Artichow] Bibliothèque graphique ARTICHOW
    Par tissard dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 19/06/2006, 18h14
  4. [GD] Chargement des bibliothèques graphiques
    Par JavaAcro dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 19/05/2006, 22h19

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