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

2D Java Discussion :

[JFreeChart] Affichage infobulle dans courbe.


Sujet :

2D Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de logica
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mars 2003
    Messages : 160
    Par défaut [JFreeChart] Affichage infobulle dans courbe.
    Bonjour,
    Est-il possible d'afficher dans une courbe Jfreechart, affichée avec la servlet DisplayChart, les valeurs de la courbe dans une infobulle (ou autre) quand on passe dessus avec la souris ?

    Merci

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu peux utiliser la méthode setBaseTooltipGenerator de la sous-classe de AbstractXYItemRenderer que tu utilises, comme par exemple StandardXYItemRenderer ou XYLineAndShapeRenderer.

    Donc, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xyLineAndShapeRenderer.setToolTipGenerator(new StandardXYToolTipGenerator());
    Après, tout dépend quelle type de graphe tu utilises.

    Par exemple, dans le cas où tu as des dates en abscisse et des nombres en ordonnées, pour que dans le tooltip, la valeur soit au format date, tu peux coder ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xyLineAndShapeRenderer.setToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());
    ou si tu veux appliquer un format particulier sur cette date :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xyLineAndShapeRenderer.setToolTipGenerator(new StandardXYToolTipGenerator("{0},{1},{2}",new SimpleDateFormat("MMM-yyyy"),new DecimalFormat()));
    où :

    - {0} correspond au label de la série
    - {1} correspond à la valeur de l'abscisse
    - {2} correspond à la valeur de l'ordonnée

    L'affichage dans le tooltip sera par exemple de ce type :
    Série1,août-2007,25
    Donc, à adapter à ton besoin.

  3. #3
    Membre confirmé
    Avatar de logica
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mars 2003
    Messages : 160
    Par défaut
    Merci,
    petit complément: si ce graphique est sauvegardé en image,j'imagine qu'il n'existe pas de moyens de profiter de cette fonctionnalité ?

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Si tu sauvegardes via ServletUtilities.saveChartAsJPEG, tu auras bien les tooltips.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 52
    Par défaut
    Bonjour,
    Je suis débutant en java, et j'utilise un exemple qui trace une courbe (dotted line) : http://www.java2s.com/Code/Java/Char...tontheLine.htm ;

    Je veux afficher dans ce graph les valeurs de chaque point ( c presque le ton cas, logica) ; et j'ai pas bien compris la solution proposé par c_nvy ; Alors si vous pouvez m'aidez svp, c un peu urgent !!
    Merci d'avance.

  6. #6
    Membre confirmé
    Avatar de logica
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Mars 2003
    Messages : 160
    Par défaut
    Bonjour,
    après les solutions proposées je n'ai pas eu le temps de revenir poster à cause de problèmes plus urgent.
    Donc revenons à notre problème.
    La solution de c_nvy ne marche pas dans mon cas car je travaille en j2ee mdoéle mcv avec des fichiers jsp pour afficher mon graphe.
    Or d'après ce que j'ai compris sur le site de Jfreechart il faut créer une map de l'image pour voir les infobulles.
    Cette création se fait avec les commandes suivantes:
    // get ImageMap
    ChartRenderingInfo info = new ChartRenderingInfo();
    // populate the info
    chart.createBufferedImage(640, 400, info);
    String imageMap = ChartUtilities.getImageMap( "map", info );

    Seuleuement dans mon imagemap je ne récupère que le tag :
    mapKm "<map id="jfreechart-64722.jpeg" name="jfreechart-64722.jpeg">\r\n</map>"
    Il me manque donc toutes les valeurs à l'intérieur.

    Merci des infos si quelqu'un a déjà eu ce type de chose à faire.

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

Discussions similaires

  1. [JFreeChart] probleme d'affichage d'une courbe
    Par rimas2009 dans le forum 2D
    Réponses: 0
    Dernier message: 10/01/2009, 15h58
  2. [JFreeChart] Affichage dans JSP
    Par Jips dans le forum 2D
    Réponses: 4
    Dernier message: 28/03/2008, 10h08
  3. Affichage de plusieurs courbes dans un meme "axes"
    Par DOC doc doc dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 11/09/2007, 11h04
  4. [JFreeChart] affichage d'un graphe dans une page jsp
    Par mokhtarmaroc dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 08/09/2007, 23h13
  5. Réponses: 3
    Dernier message: 04/05/2007, 15h49

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