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 histogramme et courbe 2 échelle différente


Sujet :

2D Java

  1. #1
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut [JFreeChart] Affichage histogramme et courbe 2 échelle différente
    Bonjour,

    J'aimerais afficher un histogramme avec des barres, et une courbe représentant le cumul de la valeur de chaque des ces valeurs.
    Evidement cette courbe augmente vite, et à des valeurs bien plus grande. C'est pourquoi j'aimerais pouvoir selectionner 2 échelles l'une pour l'histogramme et l'autre pour la courbe cumulée.

    Voici ce que j'ai actuellement.



    Et j'aimerais une taille comme ceci, afin de bien voir les tailles des barres:



    J'ai cherché beaucoup, j'ai essayé plein de méthodes: http://www.java2s.com/Code/Java/Chart/CatalogChart.htm, recherche forum, ...

    Donc si qqn à une idée pour m'aider, je suis preneur. Je peux déposer mon code si nécessaire.

    Merci d'avance

  2. #2
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    En passant par une règle de trois de proportion, un plafonnement de la valeur max, et j'en passe, j'arrive à ceci:



    C'est bien, mais celà ne répond pas à ma question de pouvoir utiliser plusieurs échelle

  3. #3
    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
    As-tu essayé de t'inspirer de la classe DualAxisDemo1 présente dans le jar de demo de JFreeChart ?
    Modératrice Java - Struts, Servlets/JSP, ...

  4. #4
    Membre actif Avatar de schneidb
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 236
    Points : 240
    Points
    240
    Par défaut
    Merci de ta réponse, en décompilant et parcourant rapidement, voici le code:

    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
        private static JFreeChart createChart()
        {
            JFreeChart jfreechart = ChartFactory.createBarChart("Dual Axis Chart", "Category", "Value", createDataset1(), PlotOrientation.VERTICAL, false, true, false);
            jfreechart.setBackgroundPaint(Color.white);
            CategoryPlot categoryplot = (CategoryPlot)jfreechart.getPlot();
            categoryplot.setBackgroundPaint(new Color(238, 238, 255));
            categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
            CategoryDataset categorydataset = createDataset2();
            categoryplot.setDataset(1, categorydataset);
            categoryplot.mapDatasetToRangeAxis(1, 1);
            CategoryAxis categoryaxis = categoryplot.getDomainAxis();
            categoryaxis.setCategoryLabelPositions(CategoryLabelPositions.DOWN_45);
            NumberAxis numberaxis = new NumberAxis("Secondary");
            categoryplot.setRangeAxis(1, numberaxis);
            LineAndShapeRenderer lineandshaperenderer = new LineAndShapeRenderer();
            lineandshaperenderer.setToolTipGenerator(new StandardCategoryToolTipGenerator());
            categoryplot.setRenderer(1, lineandshaperenderer);
            categoryplot.setDatasetRenderingOrder(DatasetRenderingOrder.FORWARD);
            LegendTitle legendtitle = new LegendTitle(categoryplot.getRenderer(0));
            legendtitle.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
            legendtitle.setBorder(new BlockBorder());
            LegendTitle legendtitle1 = new LegendTitle(categoryplot.getRenderer(1));
            legendtitle1.setMargin(new RectangleInsets(2D, 2D, 2D, 2D));
            legendtitle1.setBorder(new BlockBorder());
            BlockContainer blockcontainer = new BlockContainer(new BorderArrangement());
            blockcontainer.add(legendtitle, RectangleEdge.LEFT);
            blockcontainer.add(legendtitle1, RectangleEdge.RIGHT);
            blockcontainer.add(new EmptyBlock(2000D, 0.0D));
            CompositeTitle compositetitle = new CompositeTitle(blockcontainer);
            compositetitle.setPosition(RectangleEdge.BOTTOM);
            jfreechart.addSubtitle(compositetitle);
            return jfreechart;
        }
    D'après les seules différences avec mon code, il semblerait qu'il faille utiliser les méthodes (non testé):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    categoryplot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);
    // Ainsi que:
     categoryplot.mapDatasetToRangeAxis(1, 1);
    Et voilà un p'tit résolu

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 11/07/2014, 13h09
  2. Problème d'affichage de plusieurs courbes avec JFreechart
    Par marouene_ dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 31/03/2011, 23h45
  3. [JFreeChart] Affichage infobulle dans courbe.
    Par logica dans le forum 2D
    Réponses: 8
    Dernier message: 26/07/2010, 18h56
  4. [JFreeChart] probleme d'affichage d'une courbe
    Par rimas2009 dans le forum 2D
    Réponses: 0
    Dernier message: 10/01/2009, 15h58
  5. [JFreeChart] Affichage numéro de semaine
    Par Julio_del_pueblo dans le forum 2D
    Réponses: 1
    Dernier message: 22/08/2006, 09h52

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