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

 Java Discussion :

[JFreeChart] Ajout valeur sur histogramme


Sujet :

Java

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut [JFreeChart] Ajout valeur sur histogramme
    Bonjour,

    pensez vous qu'il soit possible de rajouter sur mes histogrammes leur valeur dans ce style la ?



    Edit : Désolé pour le double topic... Bug du pc

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    dans la démo il y a

    - Bar Charts
    - category plot
    - BarChart3DDemo4.java

    qui m'a l'aire de bien répondre a ce que tu cherche donc tu a l'exemple

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Ok merci pour l'astuce je n'avais pas pensé à regarder les démos...

    Je suis entrain de les confronter pour voir qu'elle ligne permet de les afficher. Si je trouve je reviendrais la marquer.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Bon j'ai pourtant essayé toutes les éléments de l'exemple mais rien...

    Apparemment ça ne serait pas compatible avec un CategoryItemRenderer...

    Voila ! Merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    tu est sur BarChartDemo8 a l'aire pas mal

    http://code.google.com/p/test-chart/...?spec=svn2&r=2

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Voici mon code... J'ai beau comparé je ne vois pas...

    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
    final CategoryItemRenderer renderer = new BarRenderer3D();
    			renderer.setItemLabelsVisible(true);
    			final CategoryPlot plot = new CategoryPlot();
    	        plot.setDataset(data);
    	        plot.setRenderer(renderer);
    	        plot.setDomainAxis(new CategoryAxis());
    	        plot.getDomainAxis(0).setTickLabelFont(new Font("Arial",Font.PLAIN,8));
    	        plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes"));
    	        plot.setOrientation(PlotOrientation.VERTICAL);
    	        plot.setRangeGridlinesVisible(true);
    	        plot.setDomainGridlinesVisible(true);
     
     
    	        // Passer l'axe des abscisses en entiers
    	        NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
    	        numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    Merci pour l'aide

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    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
           private static JFreeChart createChart(CategoryDataset categorydataset)
            {
                    JFreeChart jfreechart = ChartFactory.createBarChart("Bar Chart Demo 8", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, false, true, false);
                    jfreechart.setBackgroundPaint(Color.white);
                    CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
                    categoryplot.setBackgroundPaint(Color.lightGray);
                    categoryplot.setRangeGridlinePaint(Color.white);
                    NumberAxis numberaxis = (NumberAxis)categoryplot.getRangeAxis();
                    numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
                    numberaxis.setUpperMargin(0.14999999999999999D);
                    CategoryItemRenderer categoryitemrenderer = categoryplot.getRenderer();
                    categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
                    categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
                    CategoryAxis categoryaxis = categoryplot.getDomainAxis();
                    categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
                    return jfreechart;
            }
    c'est qu'il y a dans cette méthode qu'il faut reprendre

    a mon avis ca doit pas etre loing de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Oui c'est justement la ligne sur laquelle je suis entrain de réfléchir...
    Je cherche comment elle fonctionne et ce qu'elle signifie...

    Le problème étant que dans le BarChartDemo5, il n'y a pas cette ligne et pourtant on voit bien les nombres sur les bars...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    je vien de compiler le BarChartDemo5 et il n'y a pas de valeur sur les bars

    par contre sur demo8 j'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                    categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
                    categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE);
                    categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
    et j'ai bien les label sur les 3 bar

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    ok... bizarre

    sur celui la normalement il y en a BarChart3DDemo4

    ça doit venir de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    renderer.setItemLabelsVisible(true);
    Mais dans mon code il est barré... je ne sais pas ce que cela signifie. Pas compatible avec CategoryItemRenderer ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    sur demo8 j'ai ajouté

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
                    categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE);
                    categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
    et j'ai bien les label sur les 3 bar

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    si le nom de la methode est barré c'est que celle ci est Depreated c'est a dire qu'il faut evité de l'utiliser dans leur javadoc tu a les méthode auxquelles il faut ce référé pour fair la même chose

    cette methode est egalement deprecated pour les 3DBAR et elle ne donne pas le comportement que tu cherche

    elle permette d'afficher un texte pour une catégorie (d'après ce que je comprend )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
            CategoryTextAnnotation a = new CategoryTextAnnotation("Minimum grade to pass", "Robert", 0.71);
            a.setCategoryAnchor(CategoryAnchor.START);
            a.setFont(new Font("SansSerif", Font.PLAIN, 12));
            a.setTextAnchor(TextAnchor.BOTTOM_LEFT);
            plot.addAnnotation(a);
    en fait la c'est toi qui crée de tout pièce ton Annotation

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Ok merci,

    as tu essayé de mettre false à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    renderer.setItemLabelsVisible(true);
    dans l'exemple demo4 ?
    Je n'arrive pas à le compiler, une librairie que je ne trouve pas.

    Merci

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    true ou false niveau rendu visuelle cela ne change rien

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Ok,

    je viens de rajouter renderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);

    mais rien ne se passe... je continue mes recherches dans cette voie

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    mette moi la partie de code que tu exécute pour crée ton JFreeChart c'est peut être une erreur que tu ne vois pas

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Voila la partie concernée :

    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
    			final CategoryItemRenderer renderer = new BarRenderer3D();
    			//renderer.setItemLabelsVisible(true);
    			renderer.setSeriesItemLabelsVisible(1, true);
    			renderer.setBaseItemLabelsVisible(true);
     
    			final CategoryPlot plot = new CategoryPlot();
    	        plot.setDataset(data);
    	        plot.setRenderer(renderer);
    	        plot.setDomainAxis(new CategoryAxis());
    	        plot.getDomainAxis(0).setTickLabelFont(new Font("Arial",Font.PLAIN,8));
    	        plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes"));
    	        plot.setOrientation(PlotOrientation.VERTICAL);
    	        plot.setRangeGridlinesVisible(true);
    	        plot.setDomainGridlinesVisible(true);
     
    	        // Passer l'axe des abscisses en entiers
    	        NumberAxis numberAxis = (NumberAxis) plot.getRangeAxis();
    	        numberAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    Merci beaucoup pour ton aide sincèrement !!!

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 342
    Points : 419
    Points
    419
    Par défaut
    alors je pense savoir d'ou ton problème viens tu crée un nouveau CategoryItemRenderer et un nouveau CategoryPlot alors qu'il faut prendre celui de ton jFreeChart

    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
            // tu crée un freechart
            JFreeChart jfreechart = ChartFactory.createBarChart3D("Bar Chart Demo 8", "Category", "Value", categorydataset, PlotOrientation.VERTICAL, false, true, false);
     
            // tu recupere le categoryPlot de ton jfreechart
            // final CategoryPlot plot = new CategoryPlot(); a modifier par :
            CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
            plot.setDomainAxis(new CategoryAxis());
            plot.getDomainAxis(0).setTickLabelFont(new Font("Arial", Font.PLAIN, 8));
            plot.setRangeAxis(new NumberAxis("Valeurs Histogrammes"));
            plot.setOrientation(PlotOrientation.VERTICAL);
            plot.setRangeGridlinesVisible(true);
            plot.setDomainGridlinesVisible(true);
     
            // tu recupere le render de CategoryPlot
            // final CategoryItemRenderer renderer = new BarRenderer3D(); par :
            CategoryItemRenderer categoryitemrenderer = plot.getRenderer();
            categoryitemrenderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());
            categoryitemrenderer.setSeriesItemLabelsVisible(0, Boolean.TRUE);
            categoryitemrenderer.setSeriesItemLabelsVisible(1, Boolean.TRUE);
            categoryitemrenderer.setSeriesItemLabelsVisible(2, Boolean.TRUE);
    et la ça doit marcher du moins pour moi ça marche

  19. #19
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 113
    Points : 44
    Points
    44
    Par défaut
    Ok parfait ça marche ! Merci !

    Il faut maintenant que je l'applique à mes courbes car j'ai des histo + courbes

Discussions similaires

  1. Rechercher valeur et ajouter valeur sur la colonne voisine
    Par blackty1 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/07/2013, 13h51
  2. Ajout valeurs sur critere similair (Match)
    Par dudumomo dans le forum Access
    Réponses: 4
    Dernier message: 10/05/2011, 01h57
  3. [JFreeChart] Ajout valeur sur histogramme
    Par Yokooo dans le forum Débuter
    Réponses: 0
    Dernier message: 11/05/2010, 11h18
  4. Réponses: 1
    Dernier message: 13/07/2009, 11h06
  5. [BO XI R2] Ajouter une valeur sur un graphique
    Par LP-mpascolo dans le forum Deski
    Réponses: 4
    Dernier message: 11/03/2008, 18h59

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