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

  1. #1
    Membre régulier
    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
    Points : 80
    Points
    80
    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
    logica

  2. #2
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    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.
    Modératrice Java - Struts, Servlets/JSP, ...

  3. #3
    Membre régulier
    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
    Points : 80
    Points
    80
    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é ?
    logica

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Si tu sauvegardes via ServletUtilities.saveChartAsJPEG, tu auras bien les tooltips.
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre du Club
    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
    Points : 41
    Points
    41
    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 régulier
    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
    Points : 80
    Points
    80
    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.
    logica

  7. #7
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Citation Envoyé par logica Voir le message
    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.
    Ma solution fonctionne bien dans le cas où tu veux afficher le graphe dans une jsp.
    Tu trouveras un exemple plus complet de code dans la discussion suivante.
    Modératrice Java - Struts, Servlets/JSP, ...

  8. #8
    Membre régulier
    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
    Points : 80
    Points
    80
    Par défaut
    C'était une erreur de ma part.
    Je retire donc ce que j'ai dit c_nvy ;-), elle marche mais il faut absolument la map de l'image que je n'avais pas quand tu as donné ta solution la première fois.


    Merci et bravo
    logica

  9. #9
    Membre régulier
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2009
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Octobre 2009
    Messages : 76
    Points : 80
    Points
    80
    Par défaut Même objectif : affichage des infos bulles
    Bonjour à Tous,


    J'utilise Struts2
    Actuellement voici le code qui me permet d'afficher la courbe en png

    Dans mon Action
    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
     
    public class XXXAction extends ActionSupport {
     
       ByteArrayOutputStream content = new ByteArrayOutputStream();
     
       public String execute() {
         xydataset = createDataset();
         ...
         JFreeChart chart = createChart(xydataset);
         ....
         ChartUtilities.writeChartAsPNG(content, chart, width, height);
          return "succes";
      }
     
    }


    dans le struts.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <action name="XXXPng" class="XXXAction" 	method="execute">
    	<result type="stream">
    		<param name="contentType">images/png</param>
    		<param name="inputName">content</param>
    	</result>
    </action>


    Je suis à la recherche d'une solution qui me permettrai d'afficher les infos bulles

    j'ai trouvé ce Package: org.jfree.chart.imagemap qui permet la creation de: HTML image maps. où ils utilisent la méthode writeImageMap de la classe ImageMapUtilities

    mais je n'ai pas encore trouver comment je pourrait l'utiliser dans mon cas et que dois-je mettre dans le fichier de config. struts.xml à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <result type="stream">
    	<param name="contentType">images/png</param>
    	<param name="inputName">content</param>
    </result>
    Merci d'avance pour votre aide

+ 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